Ruby on rails Sidekiq-无法在5.000秒内获得数据库连接
在开发OSX时,我在Rails 4和Sidekiq上得到以下警告Ruby on rails Sidekiq-无法在5.000秒内获得数据库连接,ruby-on-rails,postgresql,concurrency,sidekiq,Ruby On Rails,Postgresql,Concurrency,Sidekiq,在开发OSX时,我在Rails 4和Sidekiq上得到以下警告 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-oug0oog1
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'
我阅读了其他的答案,这些答案说要减少我给sidekiq的并发性,以允许更多的事情发生,但是
worker: bundle exec sidekiq -c 10
它仍然不起作用
我正在使用Postgres.app
localhost中的数字/并发应该是多少?我将数据库池设置为sidekiq并发,现在它对我有效
bundle exec sidekiq -c 10
在my database.yml中
development:
adapter: postgresql
...
host: localhost
pool: 10
这个问题与数据库池应该是“sidekiq_并发”+2这一事实有关。如果您将其放入sidekiq初始值设定项中,您通常会解决问题:
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
如果我们使用rails<5.2,数据库连接大小应该是1加上并发性。下面是相应的GitHub问题
如果有5个线程,那么rails<5.2版本中的数据库池大小应该为6PostgreSQL server错误日志中是否有错误?如果是,它们是什么?我只看到worker/sidekiq错误。我应该在哪里查看PG错误日志?具体位置取决于操作系统和PostgreSQL的安装/配置方式。在文档中查找您的安装,如果您被卡住,search.Postgres.app将在/Users/your_NAME/Library/Application Support/Postgres/var-9.4/Postgres-server.log中存储日志file@NickGinanto有消息吗?我也遇到了同样的问题,我想知道这是否能解决它,原因似乎也解决了我一个月的试错都无法解决的问题。madoxer衷心感谢你。谢谢,它解决了我的问题,降低了并发db的可能性help@JamesTan为什么减少并发数据库可能会有所帮助?我也遇到了同样的问题,不知道为什么会有帮助。显然,“池化”线程。@IgnacioChiazzo我认为是因为内存不足或postgresql连接有限,您能给我们提供进一步的信息吗?为什么数字是2?我面临着同样的问题,不知道为什么它应该解决这个问题。这与此相关:似乎有帮助。非常感谢。“+2”与Redis连接相关,而不是与数据库连接相关。现在它甚至是“+5”,谢谢!这是我们代码库中的一个问题,由于您的回答和问题,我能够复制并修复它。还留下了一条评论,其中包含关于Rails 5.2中修复程序的信息