2012-09-10 113 views
2

我的heroku应用程序中的我的队列“send_comments”显示12项内容,但显示“0位0工人工作”。我知道,如果我想在本地主机上处理作业,请使用以下行:在heroku上激活resque工作人员

QUEUE=send_comments rake resque:work 

如何使用heroku执行此操作?

谢谢。

UPDATE

我不知道这是什么错误意味着,但运行“工头开始”

$ 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 tast,而不是在foreman命令本身。 – messick

回答

0

的Procfile正是告诉Heroku的,当你旋转了一个给定种类的赛道(在这种情况下,工人)做什么。为了真正创建一个工作,你必须手动扩展到了极致,就像这样:

$ heroku ps:scale worker=1 

这将旋转了一个测功机,然后运行您在Procfile指定什么worker:后,其中有在新的测功机上运行这个rake任务的效果。这会创建一名工作人员,您可以根据需要指定多个工作人员。这种缩放也与停止/重新启动应用程序无关。

相关问题