【问题标题】:Load multiple event feeds with one GData calendar query使用一个 GData 日历查询加载多个事件源
【发布时间】:2010-10-19 21:27:29
【问题描述】:

所以,我的问题是这样的......

我正在为我公司的 Intranet 门户构建一个简单的日历模块。我们使用 Google(适用于您的域的应用程序)日历,我想让员工能够在一个日历中查看他们订阅的所有提要 - 就像在真正的 Google 日历上一样!

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

我可以让它与一个提要一起工作。哎呀,我什至可以让它与用户订阅的所有提要一起工作。问题在于它是 sslllooowwwww。据我所知,我可以从一个人订阅的每个提要中获取所有事件的唯一方法是遍历他们的提要列表,然后向 Google 发起新的调用,询问每个提要的事件 /em>。当然,如果一个人订阅了 12 个订阅源……这将需要很长时间。

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

问题: 有没有办法从提要列表中询问所有事件,而不是单独查询每个事件?任何帮助将不胜感激。

顺便说一句,我正在使用 PHP 和 Zend Gdata 独立库。

提前致谢。

【问题讨论】:

    标签: php zend-framework rest calendar gdata-api


    【解决方案1】:

    我研究了执行此操作的技术,并发现了一种有趣的方法,人们正在使用Yahoo Pipes。查看OUseful.infobavatuesdays 了解详情。不过,我不确定这是否一定会解决您的速度问题。

    如果我在 Java 中执行此操作,我会使用执行器同时处理所有用户的提要请求。

    也许您可以使用 ETags 和缓存来做一些事情?在Google's Calendar API Developer's Guidethis section 中,它显示了为用户日历列表中的每个条目返回的etag 属性。该值可用于缓存日历。每当特定日历的 etag 发生变化时,都需要使用新请求刷新日历。这可以为您节省相当多的带宽。希望 Zend GData API 将这些元素公开给客户端代码。

    【讨论】:

    • 感谢您的回复。我实际上从未听说过雅虎!管道。不管它对这个项目有什么用处,它可能对其他事情有用。 etags 元素看起来也很有趣。我会调查的。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    相关资源
    最近更新 更多