gpt4 book ai didi

ruby - Sidekiq 作业在 Heroku 上排在队列中

转载 作者:IT王子 更新时间:2023-10-29 05:56:46 24 4
gpt4 key购买 nike

我有一个 Sidekiq worker 在本地运行良好,但是当部署到 Heroku 时,作业会卡在队列中。我正在使用 Redis-to-go nano 并启动并运行它,我已将 Heroku 上的工作人员扩展到 1,并且可以看到它已启动。我只是使用默认队列——没有任何自定义或花哨的东西。这是我的代码:

配置/ unicorn .rb:

Sidekiq.configure_client do |config|
config.redis = { size: 1, namespace: 'sidekiq' }
end

配置/初始化程序/redis.rb

uri = URI.parse(ENV["REDISTOGO_URL"] || "redis://localhost:6379")
REDIS = Redis.new(:url => ENV['REDISTOGO_URL'])

简介

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec sidekiq -c 5 -v -q default

我可以在队列中看到作业,但它的处理方式与本地不同。非常感谢任何建议 - 谢谢!

最佳答案

不确定到底是什么问题,但是按照本教程进行一些修改对我来说是可行的: http://manuelvanrijn.nl/blog/2012/11/13/sidekiq-on-heroku-with-redistogo-nano/

简而言之,我将配置移到了 sidekiq.rb 初始化程序中,并删除了所有 url 和命名空间信息。

require 'sidekiq'

Sidekiq.configure_client do |config|
config.redis = { :size => 1 }
end

Sidekiq.configure_server do |config|
config.redis = { :size => 4 }
end

我引用的教程链接有一个方便的计算器来确定正确的尺寸值。仍然不确定这是否是让我绊倒的原因,还是 Mark 的回答中提到的某些版本的命名空间冲突。

另外,我没有使用本教程的 sidekiq.yml 部分,因为 sidekiq wiki 说新版本的 rails 不喜欢它。相反,我在 Procfile 的 bundle exec 命令中将并发设置为 2,如下所示:

worker: bundle exec sidekiq -c 2  

希望这对以后遇到类似问题的人有所帮助!感谢所有试图提供帮助的人。

关于ruby - Sidekiq 作业在 Heroku 上排在队列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26263024/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com