我知道Heroku和delayed_job上有一些帖子,但我仍然对Heroku的工作人员和后台工作之间的互动感到困惑。
所以我推出了我的网站的新版本,我添加了delayed_job来处理电子邮件。它说我只是将worker: bundle exec rake jobs:work
添加到我的Procfile
,我很高兴。但是,这并不意味着我付钱的唯一工人正在用于背景工作吗?那么我需要另外一个吗?
有些人还提到了雇佣火灾这样的东西,它可以自动打开和关闭你的工人,但这对我来说并不是很有意义。不应该是那个工作人员一直在为你的网站做些事情,所以如果它与delayed_job一起使用,那么它就不会运行我的网站。我对这一切的运作方式知之甚少,并希望得到解释。
答案 0 :(得分:4)
是的,为了使用delayed_job,您需要为一个工作流程付费。工作进程将只处理队列中的delayed_jobs,然后您的正常Web进程(它们免费提供一个)将处理您的所有Web请求。您可以单独扩展Web和工作进程。
heroku ps
将显示您已运行的进程,并且您应至少拥有1个Web和至少1个工作程序,以便处理Web请求和延迟的作业流程。
您可以使用命令行或Web界面添加进程,命令行添加您的worker将是:
heroku ps:scale worker=1