3

我的 heroku 应用程序上的队列“send_comments”显示 12 个项目,但显示“0 个工人工作中的 0 个”。我知道,如果我想在 localhost 上处理作业,我使用以下行:

QUEUE=send_comments rake resque:work

我如何用heroku做到这一点?

谢谢你。

更新

我不确定这个错误是什么意思,但我在运行“工头启动”时得到它

$ 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
4

1 回答 1

1

Procfile 就是告诉 Heroku 当你启动一个给定类型的测功机(在本例中是工人)时该做什么。为了实际创建一个工作器,您必须手动扩展测功机,如下所示:

$ heroku ps:scale worker=1

这将启动一个测功机,然后运行您在 Procfile after 中指定的内容worker:,这具有在新测功机上运行此 rake 任务的效果。这将创建一个工人,您可以根据需要指定任意数量。这种缩放也独立于停止/重新启动您的应用程序。

于 2016-06-03T22:56:04.120 回答