从最近几周开始,我看到此错误“无法在5.000秒内获得数据库连接”。我尝试了以下解决方案。
根据Sidekiq Docs,我已将并发减少为10,并将MySql数据库池大小增加为12。但是我仍然遇到此错误,因此我将数据库池大小增加为27。但是,问题仍然存在。尝试从this和this答案中解决。我的Sidekiq服务器计算机没有正在运行的其他进程在消耗AR连接。我没有从外面旋转任何线程。以下是我的配置
Sidekiq version - 3.4.2
Rails version - 4.2.4
Active Record version - 4.2.4
Database pool size - 27
Sidekiq concurrency - 10
任何帮助,将不胜感激。
请您参考如下方法:
我怀疑这是服务器端的连接泄漏。Sidekiq::Middleware::Server::ActiveRecord
是在作业完成后负责将连接返回到池的中间件。默认情况下应包括在内。
当您使用-v
标志启动服务器时,
bundle exec sidekiq -v -C config_file
它将打印所有将被调用的中间件。您可以检查列表中是否存在该中间件?