Cron和delayed_job - 两者同时使用Heroku

时间:2011-10-19 15:09:10

标签: ruby-on-rails heroku cron delayed-job

我是否正确地认为在heroku上每2小时运行后台进程的最有效方法(例如发送电子邮件/统计信息收集等)是使用计划每两小时一次的cron,然后将项目粘贴到delayed_jobs队列(基于dj gem),然后由heroku工作人员立即获取?

除此之外,一旦应用程序投入生产,我是否正确地认为,具有成本效益的方法是雇佣员工来完成工作然后将其关闭?

我还应该考虑其他方法吗?我之前没有做过这种延迟的工作 - 在开发和基本生产测试之前,我已经完全基于一个heroku cron - 但是在生产中,如果cron工作的负载增加,这似乎不合理。

任何关于有价值的替代方法的指示表示赞赏!

1 个答案:

答案 0 :(得分:2)

如果你没有为工人做全职工作,那么Hirefire肯定是要走的路,因为否则你将为一个休眠工人付钱。

计时的另一个选择是让延迟的作业在完成后使用可用的:run_at参数重新安排。然后工作人员会在时间到来的时候这样做(虽然我从未测试过这会与Hirefire一起工作,因为我认为他们只看工作计数)

这是一个非常合理的方法,我将使用它。