我已经看过Rails的一些调度库,我想帮助选择一个,因为似乎没有一个能满足我的要求。这是一个相当常见的用例:
我们有很多报告,我们希望让用户在想要安排特定报告通过邮件发送给他们的时间和频率时进行设置。用户需要能够查看他们已安排的报告列表,并且他们应该能够取消或更改现有的计划报告。计划的作业应该在服务器重新启动后继续存在。目前,我并不担心只在一个rails服务器集群中的单个节点上运行作业。
答案 0 :(得分:7)
我建议将Delayed :: Job用于实际作业,因为它会自动处理用户的持久性,并且您可以使用delayed_jobs
表进行管理(允许用户修改/删除他们的作业)我开始了。)
在自动安排作业时,您可以使用Clockwork gem。它是由Heroku构建的(如果我没有记错的话),基本上允许你在ruby / rails应用程序中模拟/替换cron
。
通过上面的两个库,你可以覆盖所有的基础。
答案 1 :(得分:1)
我会以完全相同的理由决定反对resque。相反,我们也选择了延迟工作,事实上,工作的最后一件事就是重新安排下一次工作的工作。
答案 2 :(得分:-1)
我的公司制作CloudQuartz(www.thecloudblocks.com),它允许您通过API安排作业,并在它们运行时获得回调。
它有一个Web UI,可以显示有关作业,趋势和状态的信息,但除非您使用API,否则此UI不会向您的客户开放。希望你觉得这很有帮助。