2010-02-23 64 views
2

我需要以某种方式自动更新/解析几个RSS订阅源,并在订阅源更新或尽可能接近时立即将它们放入MySQL数据库。但是,我无法自动找出最好的方法 - 我在用户运行脚本时发现了一些教程 - 但在这种情况下,所有这些都需要在后台完成。 cron工作是否合适?如何自动解析RSS数据库以存储在MySQL数据库中?

任何想法?任何意见非常感谢,谢谢。

回答

0

它只能做回应某事 - 一个cron工作只是意味着“回应它是一定的时间。”您必须决定哪些事件最适合您的特定情况。

假设您不控制RSS源的来源,通过cron定期执行它是有意义的。只要饲料更新或尽可能接近,就要让它运行,你必须每秒轮询一次,这会让你非常不受欢迎。不要每小时检查一次(除非Feed中包含提供不同检查周期的信息)。

+0

嗯问题是它的高强度饲料 - 即它至少每3或4分钟更新一次。任何其他想法? – Bronwyn

+0

然后检查供稿是否包含说明您可以更频繁地进行调查的数据,或者联系网站负责人并征求权限。 – Quentin

+0

并使用cron作业来执行脚本的运行? – Bronwyn

0

如果你确实控制RSS源的来源,看看其他Observer pattern。如果不是,则检查所述源进料支持PubSubHubbub

一个简单的,开放的,服务器到服务器的基于Web的钩发布订阅(发布/订阅)协议的一个扩展Atom和RSS。说出PubSubHubbub协议的各方(服务器)可以在他们感兴趣的主题(feed URL)更新时获得接近即时的通知(通过webhook回调)。

+0

不幸的是,它不支持PubSubHubbub协议 - 我在这里用尽了想法。不知何故,我需要从不断更新的Feed(这是一个紧急服务提要)获取信息,并将其“缓存”到MySQL中。 – Bronwyn

1

您应该检查出Zend_Feed_Reader
Zend_Feed_Reader提供HTTP条件GET支持
如果Feed已正确配置,则脚本只需下载并解析Feed即使已更改。

您不需要完整的Zend Framework。 Zend_Feed_Reader具有很少的依赖关系,因此可以单独使用。