【发布时间】:2013-02-14 16:44:56
【问题描述】:
无论我尝试什么,我似乎都无法让 Sidekiq 遵守我的最大池大小设置。我试过了:
- 在我的数据库中设置池:
production:
adapter: mysql2
encoding: utf8
database: database
username: username
password: password
host: host
reconnect: true
pool: 10
- 在我的 sidekiq 初始化程序中对其进行硬编码(无论是否断开连接!以及在配置服务器块的内部和外部):
Sidekiq.configure_server do |config|
ActiveRecord::Base.connection.disconnect!
ActiveRecord::Base.configurations['production']['pool'] = 50
ActiveRecord::Base.establish_connection
end
- 使用 DATABASE_URL env var 设置它(是的,我确保使用 https://github.com/glenngillen/rails-database-url 设置了 DATABASE_URL):
database_url = ENV['DATABASE_URL']
if(database_url)
ENV['DATABASE_URL'] = "#{database_url}?pool=25"
ActiveRecord::Base.establish_connection
end
我不知道为什么这些都不起作用。有什么想法吗?
如果相关:
- 导轨 3.2.12
- sidekiq 2.6.4
【问题讨论】:
-
如果可能的话,你能在 Github repo 上提出这个问题吗? (github.com/mperham/sidekiq/issues)。我遇到了这个问题,但您尝试了更多方法,以便您对这个问题有更多了解。
-
您使用 Capistrano 吗?在您的积压跟踪中,您是否看到对旧版本的引用?这发生在我身上,我认为这可能是相关的。
-
您如何检查 Sidekiq 最大池限制? Sidekiq.configure_server 中的 DATABASE_URL 块代码是否执行 |config|堵塞?您是否尝试重新启动?你在用 Heroku 吗?