Ruby on rails Heroku生产现场Sidekiq工人的故障排除

Ruby on rails Heroku生产现场Sidekiq工人的故障排除,ruby-on-rails,heroku,sidekiq,worker,Ruby On Rails,Heroku,Sidekiq,Worker,我一直在我的开发环境中测试我的sidekiq工作人员,他们工作得很好。然而,当我推动Heroku时,我似乎无法让我的员工开始工作 我不确定解决此问题的最佳方法,但以下是一些信息: 程序文件: 我没有sidekiq.yaml文件 Unicorn.rb: 调用我的工作者的Rake任务: namespace :ivr do desc "For IVR" task get_welcome: :environment do NmeContactListWorker.p

我一直在我的开发环境中测试我的sidekiq工作人员,他们工作得很好。然而,当我推动Heroku时,我似乎无法让我的员工开始工作

我不确定解决此问题的最佳方法,但以下是一些信息:

程序文件: 我没有sidekiq.yaml文件

Unicorn.rb: 调用我的工作者的Rake任务:

namespace :ivr do

  desc "For IVR"
  task get_welcome: :environment do
    NmeContactListWorker.perform_async('Welcome', 'IVR')
  end
end
当我调用此rake任务时,我在heroku日志中得到以下内容:

2014-03-19T13:11:32.716759+00:00 heroku[api]: Starting process with command `bundle exec rake ivr:get_welcome` by test@gmail.com
2014-03-19T13:11:38.795843+00:00 heroku[run.3843]: State changed from starting to up
2014-03-19T13:11:38.711077+00:00 heroku[run.3843]: Awaiting client
2014-03-19T13:11:38.794029+00:00 heroku[run.3843]: Starting process with command `bundle exec rake ivr:get_welcome`
2014-03-19T13:11:47.171071+00:00 heroku[run.3843]: Process exited with status 0
2014-03-19T13:11:47.209653+00:00 heroku[run.3843]: State changed from up to complete

我不知道如何更清楚地了解我的员工失败的原因。在Heroku的生产中,什么会导致这种情况发生,但在本地工作正常?

在您的procfile中,您需要启动sidekiq流程:

# Procfile
web: bundle exec unicorn -p $PORT -E $RACK_ENV -c ./config/unicorn.rb
worker: bundle exec sidekiq
事实上,这就是我们在开发人员机器上启动sidekiq、打开终端窗口并运行
sidekiq
命令所做的。你的unicorn.rb只配置Sidekiq,不启动它

注意:部署后,您必须在heroku上启动一个工作程序,包括:

heroku ps:scale worker=1

太棒了-谢谢你的提示!
# Procfile
web: bundle exec unicorn -p $PORT -E $RACK_ENV -c ./config/unicorn.rb
worker: bundle exec sidekiq
heroku ps:scale worker=1