我正在尝试为我的项目实施iCal同步服务。数据库中有近10,000种以上的商品(更多内容),几乎每个商家信息都会每隔12小时同步一次Google Calendar iCal网址。同步单个iCal URL大约需要0.5-1秒,因此处理10000多个项目需要花费大量时间。
我不确定如何处理同步过程。我正在考虑使用Gearman但不确定它是否是最佳方式。如果我使用Gearman,那么Gearman的PROS和CONS会是什么?我如何实现Gearman来处理iCal同步?
我还发现用PHP编写的BraincraftedBackgroundProcess。我不确定纯PHP是否可以处理这么繁忙的过程。我也可以考虑使用它,但我仍然想弄清楚最好的方法是什么。
答案 0 :(得分:0)
我相信你现在已经解决了这个问题,但是Gearman可能会解决这个问题。 Gearman的优点在于你编写了相当简单的工作者,它们只能有一个函数,而这就是如何执行一个特定iCal URL的同步。
然后,您可以启动尽可能多的工作人员,因为您可以同时向Google的Calendar API提出请求,因此您可以通过启动或终止工作进程轻松缩减或提升性能。
定期更新日历可以通过让cron脚本获取过去12小时内未更新的所有日历,然后将它们添加到gearmand作为要执行的任务来完成。如果每隔15分钟执行此操作,您还可以限制请求数量,并且一次只能获取250个日历(或类似内容)的硬限制,允许每12小时更新一次更新。
如果您需要有关如何使用gearmand实现它的更具体的建议,您必须有一个更具体的问题和您正在使用的示例代码,但没有什么能阻止您使用Gearman来完成该任务。