是否有可用于支持定期轮询各种资源的工具/框架?例如我想到了一个RSS聚合器,它可以每天检查一次新内容,或者是一个维护用户Twitter头像缓存的工具,它可以每周轮询一次Twitter账户。
我不是在寻找执行实际抓取或进纸处理的工具;我正在寻找能够存储最后一次获取日期,下一次到期时醒来的东西等等。
Resque和Delayed Job等消息传递工具针对“时移”特定传入请求进行了优化,而不是处理周期性任务。换句话说,我认为你不想为每个用户提供永久的工作来检索他们的Twitter头像。但我有待纠正:D。
答案 0 :(得分:2)
Anacron非常适合这一点。我们每天醒来一次以触发背景提取。后台提取程序对SQL进行查询以查找需要更新的下一个N个用户,然后执行该批处理。
http://en.wikipedia.org/wiki/Anacron
“它执行周期性的命令调度,传统上由cron完成,但不假设系统连续运行。因此,它可用于控制在没有系统的系统上执行每日,每周和每月的作业每天24小时运行。
Anacron确保这些命令以指定的时间间隔运行,就像机器正常运行时间允许的那样。“
答案 1 :(得分:1)
我们已经使用了这个https://github.com/bvandenbos/resque-scheduler,它满足了我们的需求。您编写了一个像yml文件的cron,并且就像resque作业一样安排作业。如果你已经在使用resque,我会推荐这个。
答案 2 :(得分:0)
嗯......你对按需死亡和醒来的要求似乎过于理想,无法预先建成图书馆。如果你的守护进程在完成它的工作后就会死掉,那你再次需要另一个守护进程/运行任务来指导它在必要时唤醒,而这不是你想要的。
话虽如此,您可以尝试使用foreverb
作为此类任务的自定义守护程序。它非常简单有效,您可以隔离零件。一个脚本,您可以在其中编写需求,然后使用一个守护程序来运行它。
https://github.com/DAddYE/foreverb
如果你找到了你想要的东西,请确保让全世界都知道。