我正在编写一个rails 3应用程序,它需要在每个用户的自定义计划上执行小任务 . 计划任务将动态定义 . 现在我的计划是使用带有redis的resque调度程序 .
一旦我为指定任务设置了计划(例如,每48小时运行一次任务A),我想无限期地运行该任务 . 因此,我希望将这些计划存储在数据库或其他内容中,以防应用程序在重新启动时崩溃,它会再次加载队列这些任务 .
Resque是否支持默认情况下将其存储在redis中,还是需要编写自己的自定义内容?我也在看ruby-taskr(http://code.google.com/p/ruby-taskr/) . 我不确定taskr是否支持将其存储在数据库中并在启动时注册?
如果有应用程序/演示我可以查看它也会很有帮助 .
谢谢
1 回答
我对批处理作业有类似的设置 . 用户将它们添加到Web仪表板上,然后经常指定它们运行 .
我使用active-record来存储调度定义,使用resque执行,使用单个cron条目来使用rake任务进行入队 .
那么在rake任务中:
其中每日,每周,每月都是模型的命名范围:
这有点hacky,但它运作良好,我很好地保持在堆栈内 . 希望这很有用