运行rake任务以在Heroku上启动Resque worker

运行rake任务以在Heroku上启动Resque worker,heroku,rake,backgroundworker,redis,resque,Heroku,Rake,Backgroundworker,Redis,Resque,所以我要在Heroku上安装Resque和redis,这就是我的Resque.rake文件的样子: 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 rak

所以我要在Heroku上安装Resque和redis,这就是我的
Resque.rake
文件的样子:

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任务?有没有一种方法可以让这一切自动化?此外,尽管我有两名员工在运行,但似乎只有一名在运行。有没有办法回到一个工人那里?

您只需要一个工人就可以重新确认。您需要运行heroku rake作业:work或使用(cron或运行该任务的东西)来自动运行作业。

您应该使用Procfile在heroku上重新创建作业


请记住,Procfile用于新的Heroku Cedar堆栈。

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