【问题标题】:sidekiq ignoring pool size settingsidekiq 忽略池大小设置
【发布时间】: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['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 吗?

标签: ruby-on-rails-3.2 sidekiq


【解决方案1】:

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

【讨论】:

  • 所以,这不是我的确切问题,但它引导我找到了解决方案,所以我接受了你的回答:) 我们的应用程序有连接到不同数据库的模型,所以我们手动连接到这些模型中的数据库。正是那些没有正确池设置的连接,这解释了为什么无论我手动配置多少种不同的方式,它似乎都忽略了设置:它只是没有看到它。
猜你喜欢
  • 2014-10-02
  • 2012-02-08
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多