ruby-on-rails - 告诉 Sidekiq 使用所有可用的 Heroku worker

标签 ruby-on-rails heroku sidekiq

我需要尽快批处理大量文件(数百万条数据库记录)。为此,我将文件分成 3 个目录,并使用标准配置(无配置文件)设置 Sidekiq。

然后我启动了 3 个 Heroku worker 并调用了 3 个方法,这启动了 3 个 Sidekiq worker,它们都带有“默认”队列。最初,Sidekiq 使用 2 个 Heroku worker,一段时间后它决定只使用 1 个 worker。

我如何强制 Sidekiq 使用所有 3 个 worker 来尽快完成工作?

谢谢

enter image description here

最佳答案

我在本页底部找到了解决方案:http://manuelvanrijn.nl/blog/2012/11/13/sidekiq-on-heroku-with-redistogo-nano/

# app/config/sidekiq.yml
:concurrency: 1

# Procfile    
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec sidekiq -e production -C config/sidekiq.yml

此外,如果您有很多 worker 和一个免费/便宜的 Redis 实例,请确保限制每个 worker 到 Redis 服务器的连接数:

# app/config/initializers/sidekiq.rb
require 'sidekiq'

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

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

您可以在这里计算最大连接数:http://manuelvanrijn.nl/sidekiq-heroku-redis-calc/

关于ruby-on-rails - 告诉 Sidekiq 使用所有可用的 Heroku worker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17721668/

相关文章:

ruby-on-rails - Sidekiq 在生产环境中监控无 CSS 和 Bootstrap

mysql - 15分钟小组记录

javascript - Heroku 上的 Rails,redacto 编辑器显示两次

heroku - 如何查看没有时间戳/额外信息的 Heroku 日志?

ruby-on-rails - 如何访问 ActiveJob 救援中的执行参数

ruby-on-rails - Redis 的环境变量

ruby-on-rails - 如何针对组合字段的唯一性对这种复杂的验证进行建模

ruby-on-rails - 在 Rails 3 中进行身份验证最常用的方法是什么?

ruby-on-rails - ActiveRecord::Relation 问题检查为零? -- rails 3.1

node.js - 部署heroku Nodejs应用程序时出错