Heroku resque no worker

问题描述:

我已经成功排队工作,我可以在resque web上看到。Heroku resque no worker

但是这项工作永远不会执行,只是等待。我的heroku应用程序上有1名工作人员。在resque统计工作者为0

在LIB /任务/ resque.rb:

require 'resque/tasks' 

task "resque:setup" => :environment do 
    ENV['QUEUE'] = '*' 

    Resque.after_fork do |job| 
    ActiveRecord::Base.establish_connection 
    end 

end 

desc "Alias for resque:work (To run workers on Heroku)" 
task "jobs:work" => "resque:work" 
+0

正在开始这1名工人? – messick 2013-04-10 17:16:41

+0

我如何开始这1名工人?我已经尝试过'heroku运行bundle exec rake jobs:work'但是出现错误。不知道如何建立任务.. – 2013-04-10 17:18:16

+0

你说**我在我的heroku应用程序**有1名工人。那是什么意思? – messick 2013-04-10 17:19:33

你必须告诉Heroku的通过Procfile,以启动Resque工人。这就是你要在本地运行的命令的地方,比如RAILS_ENV=Production QUEUE=* bundle exec rake jobs:work

这给你在本地测试Heroku Resque的额外好处,通过使用相同的Profile来启动Resque工作人员与工头。

Here是Heroku网站上的一个链接,它解释了如何设置。

+0

不幸的是我使用Windows,因此只能在Heroku上测试。为什么我不能通过在控制台中运行此命令启动1个工作者:'heroku run bundle exec rake jobs:work' – 2013-04-10 17:30:25

+0

Typo ..文件应该命名为resque.RAKE ...现在工作正常。 – 2013-04-10 17:59:50

+0

呵呵,没有意识到工头在Windows上没有工作。 – messick 2013-04-10 18:41:56

正如@messick说你需要与Procfile执行resque工人登记,以防万一你不真正关心的已经建立了enviroments只是在你的Procfile加上这些行:

resque: env TERM_CHILD=1 COUNT=1 QUEUE=* bundle exec rake resque:work 
worker: bundle exec rake resque:work COUNT=1 QUEUE=* 

如果需要一个调度程序只是添加这一行

scheduler: bundle exec rake resque:scheduler 
+1

为什么你需要在procfile中声明'resque:'和'worker:'? – Marklar 2014-10-28 03:13:40

+0

我的意思是给更多的例子...在我的情况下,我确实有一个工人(一个线程我在我的页面执行,这只是用angularjs加载我的网站)和一个resque过程(这将自动执行通过使用YML文件道具) – d1jhoni1b 2014-10-29 17:22:11