2

是否有可用的工具/框架来支持定期轮询各种资源?例如,我想到了一个 RSS 聚合器,它每天检查一次新内容,或者一个维护用户 Twitter 头像缓存的工具,它每周轮询一次他们的 Twitter 帐户。

我不是在寻找执行实际获取或提要处理的工具;我正在寻找可以存储上次提取日期、在下一个到期时唤醒等的东西。

Resque 和 Delayed Job 等消息传递工具针对“时移”特定传入请求进行了优化,而不是处理周期性任务。换句话说,我认为您不会希望为每个用户保留一份永久的工作来检索他们的 Twitter 头像。但我必须得到纠正:D。

4

3 回答 3

2

Anacron 非常适合这一点。我们让它每天唤醒一次以触发后台获取。后台提取器对 SQL 进行查询以查找需要更新的下 N 个用户,然后执行该批处理。

http://en.wikipedia.org/wiki/Anacron

“它执行传统上由 cron 完成的定期命令调度,但不假设系统连续运行。因此,它可用于控制非 24 小时运行的系统上每日、每周和每月作业的执行一天。

Anacron 确保这些命令在机器正常运行时间允许的情况下以指定的时间间隔运行。”

于 2012-04-21T04:40:10.440 回答
1

我们已经使用了这个https://github.com/bvandenbos/resque-scheduler,它满足了我们的需求。您编写一个类似 yml 文件的 cron,并且这些作业就像 resque 作业一样被安排。如果您已经在使用 resque,我会推荐这个。

于 2012-04-12T20:06:31.913 回答
0

嗯...您对按需死亡和唤醒的要求似乎太理想了,无法预先构建到库中。如果您的守护程序在完成其工作后死亡,您将再次需要另一个守护程序/运行任务来引导它在必要时唤醒,这不是您想要的。

话虽如此,您可以尝试将foreverb其用作此类任务的自定义守护程序。它非常简单高效,您可以隔离零件。一个脚本,您可以在其中编写需求,然后一个守护程序来运行它。

https://github.com/DAddYE/foreverb

如果你找到了你要找的东西,一定要让全世界知道。

于 2012-04-17T04:09:21.753 回答