在Heroku上激活Resque工作者

3

我的Heroku应用程序中的队列“send_comments”显示有12个项目,但是却显示“0 of 0 Workers Working”。我知道如果我想在本地处理作业,我需要使用以下行:

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

3
将 --trace 命令放在 Profile 文件中的 rake 任务上,而不是放在 foreman 命令本身上。 - Nick Messick
1个回答

1

Procfile文件就是告诉Heroku在启动给定类型的Dyno(在这种情况下是worker)时该做什么。要创建一个worker,您需要手动扩展Dyno的规模,如下所示:

$ heroku ps:scale worker=1

这将启动一个 dyno,并在 Procfile 中指定的 worker: 后运行,从而在新 dyno 上运行此 rake 任务。这将创建一个 worker,您可以根据需要指定多个。这种扩展也与停止/重新启动应用程序无关。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接