【发布时间】:2011-12-11 00:44:08
【问题描述】:
我是否认为在 heroku 上每 2 小时运行一次后台进程的最有效方法(例如发送电子邮件/统计信息收集等)是使用计划为每两个小时的 cron,然后将项目粘贴到delay_jobs 队列(基于 dj gem)然后被 heroku 工作人员立即拾取?
除此之外,一旦应用程序投入生产,我是否认为具有成本效益的方法是让雇佣火启动一个工人来执行这项工作,然后再将其关闭?
我还应该考虑其他方法吗?我以前没有做过这种延迟的工作——在开发和上线之前的基本生产测试中,我所有的一切都基于 heroku cron——但是在生产中,如果 cron 工作的负载增加,这似乎并不明智。
任何关于有价值的替代方法的指针表示赞赏!
【问题讨论】:
-
+1 表示“雇佣兵”。我以前没听说过。您使用 cron + DJ 的想法对我来说似乎很明智。不过,我不确定您所说的“加载 cron 作业”是什么意思,因为大概它所做的只是排队 DJ 任务。
-
我指的是 cron now 上的负载,当 cron 实际执行大任务时,而不是仅仅将东西放入队列中。 IE。我只是使用一个 cron 任务来触发一个类方法。真的,我应该只使用 cron 将事情推送到队列中。这有意义吗?
-
是的,我想我们说的是同一件事。 Cron 应该加载队列(这应该是一件非常轻量级的事情)。 DJ 工作应该承担繁重的工作。
标签: ruby-on-rails heroku cron delayed-job