2

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

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

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

我可以让它与一个提要一起工作。哎呀,我什至可以让它与用户订阅的所有提要一起工作。问题在于它是sslllooowwwww。据我所知,我可以从一个人订阅的每个提要中获取所有事件的唯一方法是循环浏览他们的提要列表并重新调用 Google 来询问每个提要的事件。嗯,很自然,如果一个人订阅了 12 个订阅源……这将需要很长时间。

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

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

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

提前致谢。

4

1 回答 1

1

我研究了这样做的技术,并发现了一种有趣的方法,人们正在使用Yahoo Pipes。查看OUseful.infobavatuesdays了解详细信息。我不确定这是否一定会解决您的速度问题。

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

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

于 2009-04-17T17:15:00.317 回答