【问题标题】:Rails 6.1: Jobs on Heroku going to Async instead of SidekiqRails 6.1:Heroku 上的作业将使用 Async 而不是 Sidekiq
【发布时间】:2021-10-26 16:01:50
【问题描述】:

我一直在尝试让 Sidekiq 在 Heroku 上工作,但无法让我的应用使用它来代替异步(默认)。 在我的本地一切正常,我可以看到工作进入 sidekiq,但在生产(heroku)上,应用程序继续使用异步适配器。

第二个工作人员 dyno 启动,sidekiq 似乎已正确安装,因为 Web UI 加载正常。我已经尝试了 3 个不同的 redis 插件,我目前正在使用 heroku-redis。

我在下面包含了一些我的配置文件,我尝试关注this medium post

*/production.rb
config.active_job_queue_adapter = :sidekiq
*Procfile
web: bin/rails server -p ${PORT:-5000} -e $RAILS_ENV
release: bin/rails db:migrate
worker: bundle exec sidekiq -c 2

我尝试了不同版本的 redis.rb 初始化程序,目前使用的是 heroku 文档中推荐的那个。

*/intializers/redis.rb
$redis = Redis.new(url: ENV["REDIS_URL"], ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE })
*/initializers/sidekiq.rb
if ENV['REDIS_URL']
    Sidekiq.configure_client do |config|
        config.redis = {url:ENV['REDIS_URL'], size: 1, network_timeout:5}
    end 
    Sidekiq.configure_server do |config|
        config.redis = {url:ENV['REDIS_URL'], size: 12, network_timeout:5}
    end 
end

我会喜欢任何想法,谢谢!

【问题讨论】:

    标签: ruby-on-rails heroku redis sidekiq


    【解决方案1】:

    您在config/environments/production.rb 文件中输入了错字。而不是:

    config.active_job_queue_adapter = :sidekiq
    

    尝试:

    config.active_job.queue_adapter = :sidekiq
    

    注意active_job 后面的点(.)而不是下划线(_)。

    【讨论】:

    • 好吧,做到了。非常感谢!
    猜你喜欢
    • 2021-11-11
    • 2015-03-29
    • 1970-01-01
    • 2015-08-20
    • 2014-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    相关资源
    最近更新 更多