2011-08-16 179 views
4

开始Resque工人所以我Resque和Redis的去建立在Heroku上,这就是我的resque.rake文件看起来像:运行rake任务,在Heroku

require 'resque/tasks' 

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

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

我跑heroku rake jobs:work,并得到一个工人跑。这工作完美。我的背景工作正在完成。

然后我对代码进行了一些更改,推送到了heroku,并且仍然看到我有一名工作人员正在运行。然而,当工作被添加到队列中时,工人没有得到任何工作。所以我又跑了heroku rake jobs:work,说我有两个工人跑,我的工作正在完成。

我的问题是为什么发生这种情况?每次我推送到heroku时,是否需要运行这个rake任务?有没有办法让这个自动化?另外,虽然我有两名工人在跑,但似乎只有一名工作。有办法找回一名工人吗?

回答

-1

您只需要一名工人进行Resque。您将需要运行heroku rake jobs:work或使用Resque-Scheduler(cron或某事来运行该任务)来自动运行您的作业。

+0

虽然这可能是真的,但这并不能回答我的问题 –