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

标签 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 rake jobs:work 并让一名 worker 运行。这非常有效。我的后台作业正在完成。

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

我的问题是为什么会这样?每次推送到 heroku 时都需要运行这个 rake 任务吗?有没有办法自动化这个?另外,虽然我有两个 worker 在跑,但似乎只有一个在工作。有没有办法回到一个 worker 那里?

最佳答案

你应该在 heroku 上使用 Procfile 来重新请求作业 http://devcenter.heroku.com/articles/procfile

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

关于heroku - 运行 rake 任务以在 Heroku 上启动 Resque worker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7073109/

相关文章:

ruby-on-rails - 如何确定哪个提交和/或哪个分支部署到 Heroku?

Ruby-on-Rails 从 Rake 任务创建记录

c# - .NET Web 服务和 BackgroundWorker 线程

c# - BackgroundWorker 最佳实践

heroku - 有人可以解释 "heroku ps:scale web=1"

heroku - 我可以使用带有连接 URL 的 redis-cli 吗?

ruby-on-rails - 当前的 ExecJS 运行时不支持 ES6

c# - 注意到涉及 BackgroundWorker 的模式的抽象

mysql - Heroku Rails ClearDB Resque 连接

ruby - 没有这样的文件或目录 - git ls-files -- WINDOWS