2013-02-14 4 views
2

Независимо от того, что я пытаюсь, я не могу заставить Sidekiq соблюдать мои настройки максимального размера пула. Я пробовал: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
+0

Если возможно, вы можете повысить это на Github repo? (Https://github.com/mperham/sidekiq/issues). У меня возникла проблема, но вы попробовали больше способов, чтобы узнать больше об этой проблеме. – lulalala

+0

Вы используете Capistrano? В вашей отстающей трассе вы видите ссылку на старые версии? Это происходит со мной, и я думаю, что это может быть связано. – lulalala

+0

Как вы проверяете лимит Sidekiq max pool? Является ли этот код DATABASE_URL внутри файла Sidekiq.configure_server do | config | блок? Вы пытались перезапустить? Вы используете Heroku? – Jirico

ответ

1

Убедитесь, что вы не установления соединения вручную в любой из рабочих, или в любой из кода, выполняемого работниками. Это увеличит количество подключений, которые каждый сотрудник проверит из пула (без необходимости), и приведет к краху вашего юниверса.

+0

Итак, это была не моя точная проблема, но это привело меня к решению, поэтому я принял ваш ответ :) В нашем приложении есть модели, которые подключаются к другой базе данных, поэтому мы вручную подключаемся к БД в этих моделях. Это были те соединения, у которых не было правильных настроек пула, что объясняет, почему независимо от того, сколько разных способов я вручную настроил, он, казалось, игнорировал настройку: он просто не видел этого. –

Смежные вопросы