Ruby on rails 3.2 sidekiq忽略池大小设置

Ruby on rails 3.2 sidekiq忽略池大小设置,ruby-on-rails-3.2,sidekiq,Ruby On Rails 3.2,Sidekiq,无论我尝试什么,我似乎都无法让Sidekiq遵守我的最大池大小设置。我试过: 在我的数据库中设置池: 在我的sidekiq初始值设定项中对其进行硬编码(包括断开连接和不断开连接!以及配置服务器块内部和外部): 使用DATABASE_URL env var设置它(是的,我确保了DATABASE_URL已设置,使用): 我不知道为什么这些都不起作用。有什么想法吗 如果相关: 轨道3.2.12 sidekiq 2.6.4 确保您没有在任何工作程序或工作程序执行的任何代码中手动建立连接。这

无论我尝试什么,我似乎都无法让Sidekiq遵守我的最大池大小设置。我试过:

  • 在我的数据库中设置池:
  • 在我的sidekiq初始值设定项中对其进行硬编码(包括断开连接和不断开连接!以及配置服务器块内部和外部):
  • 使用DATABASE_URL env var设置它(是的,我确保了DATABASE_URL已设置,使用):
我不知道为什么这些都不起作用。有什么想法吗

如果相关:

  • 轨道3.2.12
  • sidekiq 2.6.4

确保您没有在任何工作程序或工作程序执行的任何代码中手动建立连接。这将增加每个工作人员从池中签出的连接数(不必要),并将导致您的宇宙崩溃。

如果可能,您可以在Github repo上提出此问题吗?(). 我有这个问题,但是你尝试了更多的方法,所以你对这个问题了解得更多。你使用Capistrano吗?在backlog跟踪中,您是否看到对旧版本的引用?这种情况发生在我身上,我想可能与此有关。你是如何检查Sidekiq max泳池限制的?该数据库URL块代码是否在Sidekiq.configure_server do | config |块中?您是否尝试重新启动?你在使用Heroku吗?这不是我的问题,但它让我找到了解决方案,所以我接受了你的答案:)我们的应用程序有连接到不同数据库的模型,所以我们手动连接到这些模型中的数据库。正是这些连接没有正确的池设置,这解释了为什么无论我手动配置了多少种不同的方式,它似乎都忽略了设置:它只是看不到而已。
production:
  adapter: mysql2
  encoding: utf8
  database: database
  username: username
  password: password
  host: host
  reconnect: true
  pool: 10
Sidekiq.configure_server do |config|
  ActiveRecord::Base.connection.disconnect!
  ActiveRecord::Base.configurations['production']['pool'] = 50
  ActiveRecord::Base.establish_connection
end
database_url = ENV['DATABASE_URL']
if(database_url)
  ENV['DATABASE_URL'] = "#{database_url}?pool=25"
  ActiveRecord::Base.establish_connection
end