我的heroku应用程序上的队列“send_comments”显示了12个项目,但是显示“0个0工人工作”。我知道如果我想在localhost上处理作业,我使用以下行:
QUEUE=send_comments rake resque:work
如何使用heroku执行此操作?
谢谢。
更新
我不确定这个错误意味着什么,但我在运行“foreman start”时得到它
$ foreman start --trace
21:15:38 worker.1 | started with pid 803
21:15:44 worker.1 | rake aborted!
21:15:44 worker.1 | can't convert Float into String
21:15:44 worker.1 |
21:15:44 worker.1 | Tasks: TOP => resque:work => resque:preload => resque:setup
21:15:44 worker.1 | (See full trace by running task with --trace)
这是什么意思,这可能是工人没有处理的原因?
这是我的Procfile:
worker: env RESQUE_TERM_TIMEOUT=1 TERM_CHILD=1 VVERBOSE=1 QUEUE=* bundle exec rake resque:work
答案 0 :(得分:0)
Procfile就是告诉Heroku当你旋转给定类型的dyno(在这种情况下是工人)时要做什么。为了实际创建一个工人,你必须手动放大dyno,如下所示:
$ heroku ps:scale worker=1
这将启动一个dyno,然后在worker:
之后运行你在Procfile中指定的内容,这会在新dyno上运行此rake任务。这会创建一个工作器,您可以根据需要指定。此缩放也与停止/重新启动应用程序无关。