代码之家  ›  专栏  ›  技术社区  ›  KyleFarris

使用一个gdata日历查询加载多个事件源

  •  2
  • KyleFarris  · 技术社区  · 16 年前

    所以,我的问题是…

    我正在为公司的Intranet门户构建一个简单的日历模块。我们使用谷歌(你的域名的应用程序)日历,我想让员工能够在一个日历中看到他们订阅的所有订阅源——就像在真正的谷歌日历上一样!

    我之所以不使用他们提供的小工具,是因为我们想要一周的视图。他们的小工具目前只提供全月和“周日程”视图。所以,我们想要一个周视图,基本上看起来像完整日历中的一行(周)。我们已经创建了这样一个接口,现在只需要填充它。

    我可以让它和一个饲料一起工作。我甚至可以让它与用户订阅的所有提要一起工作。问题是 SsLLWOWWWW . 据我所知,我能从每个订阅源中获取所有事件的唯一方法是循环查看他们的订阅源列表,并向Google打一个新的电话询问事件。 对于每个饲料 . 当然,如果一个人订阅了12种饲料…要花很长时间。

    一个可以帮助解决速度问题的想法是将结果存储在我们的数据库中,并偶尔为我们的100个提要更新它。但是,这可能会减慢我们的服务器速度,因为它基本上会不断地查询Google,这是因为提要的数量和检索每个提要所需的时间。

    问题: 有没有一种方法可以从提要列表中询问所有事件,而不是分别查询每个事件?任何帮助都将不胜感激。

    顺便说一下,我使用的是PHP和ZendGData独立库。

    事先谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   laz    16 年前

    我研究了做这件事的技巧,发现了一种有趣的方法 Yahoo Pipes . 退房 OUseful.info bavatuesdays 详情。不过,我不确定这是否一定能解决你的速度问题。

    如果我在Java中这样做,我会使用一个执行器同时处理所有的用户进给请求。

    也许您可以使用etags和缓存来做些什么?在 this section 属于 Google's Calendar API Developer's Guide 它显示用户日历列表中每个条目返回的etag属性。该值可用于缓存日历。每当特定日历数据的etag出现时,需要使用新请求刷新日历。这样可以节省很多带宽。希望ZendGDataAPI将这些元素公开给客户机代码。