【问题标题】:Heroku Delayed Job and Sidekiq in the Same appHeroku 延迟作业和 Sidekiq 在同一个应用程序中
【发布时间】:2017-04-26 22:16:11
【问题描述】:

我目前正在我的 Heroku 实例上运行 delay::job 来处理很多不同类型的作业(导出大型列表等),我正在使用很棒的 progress job gem,它显示了作业的进度条提出请求的用户。

我希望能够为其他作业运行 sidekiq 工作程序,不涉及用户,我不需要进度条,因为它比 Delayed::Job 有明显的内存改进。

我是否可以在同一个 heroku 应用程序上同时运行延迟作业和 sidekiq?如果是这样,有什么我可以效仿的例子吗?我对如何设置 procfile 或这个感到困惑。

下面是我的 Procfile。我看不到如何同时启动延迟作业和 Sidekiq?如果我只是在下面的工作行上添加 bundle exec sidekiq 之类的事情,它似乎取代了延迟的工作?

过程文件:

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

【问题讨论】:

    标签: ruby-on-rails heroku delayed-job sidekiq


    【解决方案1】:

    有可能。

    首先,你应该解决类似的接口冲突问题,如.delay。这里:Run Delayed Jobs and Sidekiq at the same time

    其次,你应该设置多个active_job适配器配置。这里:http://edgeguides.rubyonrails.org/active_job_basics.html#backends

    关于Procfile,可以注册多个worker 例如)

    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

    【讨论】:

    • 感谢您的帮助。我花了一点时间来完成这个设置。所以我让它在本地使用 ActiveJob 并修复了延迟问题,但我不确定如何使用我的 Procfile 在 Heroku 上进行此设置。似乎是其中之一?我编辑了我的问题以包含 procfile。可以你看看?
    猜你喜欢
    • 2012-10-29
    • 2013-08-04
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 2011-03-13
    相关资源
    最近更新 更多