2014-09-22 11 views
18

uzyskać następujące ostrzeżenie z szyn 4 i Sidekiq na OS X na rozwójSidekiq - nie może uzyskać połączenia z bazą danych w 5.000 sekund

10:13:39 worker.1 | 2014-09-22T07:13:39.857Z 86981 TID-oug0oog10 WARN: could not obtain a database connection within 5.000 seconds (waited 5.002 seconds) 
10:13:39 worker.1 | 2014-09-22T07:13:39.857Z 86981 TID-oug0oog10 WARN: /Users/me/.rvm/gems/ruby-2.1.3/gems/activerecord-4.1.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:190:in `block in wait_poll' 

Czytałem inne odpowiedzi, które mówią zmniejszenie współbieżności daję sidekiq aby umożliwić bardziej do innych rzeczy, ale z

worker: bundle exec sidekiq -c 10 

to nadal nie działa

Używam Postgres.app

Co powinny być liczby/współbieżności w localhost?

+0

Czy są błędy w dzienniku błędów serwera PostgreSQL? Jeśli tak, to jakie one są? –

+0

Widzę tylko błędy worker/sidekiq. gdzie powinienem zobaczyć dziennik błędów PG? –

+0

Dokładnie tam, gdzie jest to zależne od systemu operacyjnego i sposobu instalacji/konfiguracji PostgreSQL. Sprawdź to w dokumentach dotyczących instalacji, jeśli utkniesz, szukaj. –

Odpowiedz

30

Ustawiam pulę bazy danych na współbieżność sidekiq i teraz działa ona dla mnie.

bundle exec sidekiq -c 10 

w moim database.yml

development: 
    adapter: postgresql 
    ... 
    host: localhost 
    pool: 10 
+0

Wydaje się, że naprawiłem mój problem, którego nie mogłem naprawić przez miesiąc prób i błędów. ** madoxer ** dziękuję z całego serca. – yaru

+0

Dzięki, naprawiłem mój problem –

+0

zmniejszenie współbieżności bazy danych może pomóc –

2

probem jest związane z faktem, że basen baza danych powinna być „sidekiq_concurrency” + 2. Jeśli umieścisz to do swojego sidekiq inicjatora będzie rozwiązać ten problem ogólnie:

Sidekiq.configure_server do |config| 
    config = ActiveRecord::Base.configurations[Rails.env] || 
     Rails.application.config.database_configuration[Rails.env] 
    config['pool'] = Sidekiq.options[:concurrency] + 2 
    ActiveRecord::Base.establish_connection(config) 
    Rails.logger.debug("Connection Pool size for Sidekiq Server is now: #{ActiveRecord::Base.connection.pool.instance_variable_get('@size')}") 
end 
+0

możesz podać nam więcej informacji? Dlaczego numer 2? Mam do czynienia z tym samym problemem i nie wiem, dlaczego powinien rozwiązać problem –

+0

Jest to związane z tym: https://github.com/mperham/sidekiq/blob/master/4.0-Upgrade.md – jacopobeschi

+0

wydaje się pomóc. Dziękuję Ci ! – ZeDalaye