我目前正在我的Heroku实例上运行delayed :: job来处理不同类型的工作(导出大型列表等),而我正在使用显示作业进度条的真棒progress job gem发出请求的用户。
我希望能够运行一个sidekiq工作以及其他工作,而不涉及用户,我不需要进度条,因为它显然比Delayed :: Job更好的内存改进。
我可以在同一个heroku应用程序上运行延迟作业和sidekiq吗?如果有,我可以遵循任何例子吗?我对如何设置proc文件或者这个感到困惑。
以下是我的Procfile。我不知道如何启动延迟工作和Sidekiq?如果我只是在下面的工作线上添加bundle exec sidekiq,它似乎会取代延迟的工作?
Procfile:
web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development}
web: bundle exec puma -C config/puma.rb
worker: bundle exec rake jobs:work
答案 0 :(得分:2)
有可能。
首先,你应该解决像.delay
这样的类似接口冲突问题。在这里:Run Delayed Jobs and Sidekiq at the same time
其次,您应该设置多个active_job适配器配置。在这里:http://edgeguides.rubyonrails.org/active_job_basics.html#backends
关于Procfile,您可以注册多个工作人员 例如)
web: bundle exec puma -t 5:5 -p ${PORT:-3000} -C config/puma.rb
worker: bundle exec sidekiq
delayedjobworker: bundle exec rake jobs:work
检查https://devcenter.heroku.com/articles/procfile#more-process-type-examples