[英]Google Calendar API V3 Batch list events
我已經成功實現了(使用Java客戶端庫)日歷的身份驗證和檢索。 我的問題是,我想從多個日歷中檢索事件列表,但是為每個日歷發送一個單獨的API請求所花費的時間開始累加,如果啟用了很多日歷,則導致20秒的頁面加載時間。 我了解API並未提供從多個日歷中請求事件的方法,但是我可以使用BatchRequest類對請求進行分組嗎?
我已經能夠使本示例能夠批量插入多個日歷。
但是我不能將其擴展到列出事件。 本質上,我想這樣做:
for (int i=0; i < calendarIDs.length; i++) {
client.events().list(calendarIDs[i]).queue(batch, callback);
}
batch.execute();
我終於使用稍微不同的方法弄清楚了。 而不是使用list對象的queue函數,而是使用客戶端的batch.queue函數:
BatchRequest batch = client.batch();
for (int i=0; i< calendarIDs.length; i++) {
List req = client.events().list( calendarIDs[i]);
batch.queue(req.buildHttpRequest(), Calendar.class, GoogleJsonErrorContainer.class, mycallback);
}
batch.execute();
這似乎改善了很多性能。
我正在做的事情看起來像您想要的,但是我沒有使用批處理,這是我的代碼示例:
CalendarEventFeed resultFeed = service.getFeed(calendarUrl, CalendarEventFeed.class);
for (int i = 0; i < resultFeed.getEntries().size(); i++) {
CalendarEventEntry entry = resultFeed.getEntries().get(i);
}
因此,您需要更改以從其他日歷獲取事件的唯一事情是“ calendarUrl”,這就是獲取日歷URL的方式
calendarUrl = new URL(calendar.getLink(Link.Rel.ALTERNATE, Link.Type.ATOM).getHref());
其中“ calendar”是來自Google lib的CalendarEntry。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.