mysql - Active Record 无法在 5.000 秒内获得数据库连接
问题描述
从最近几周开始,我看到了这个错误“在 5.000 秒内无法获得数据库连接”。我尝试了以下解决方案。
根据 Sidekiq Docs,我已将并发数减少到 10,并将 MySql 数据库池大小增加到 12。但我仍然收到此错误,因此我将数据库池大小增加到 27。但问题仍然存在。尝试了这个和这个答案的解决方案。我的 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
它将打印所有将被调用的中间件。你能检查这个中间件是否存在于列表中吗?
推荐阅读
- javascript - if else 函数在 Mobile 上运行 JS 容器
- python - 无法启用 Matplotlib 交互式图形的家伙
- angular - Angular - 404 Not Found nginx/1.18.0 (Ubuntu) in sinup activate
- javascript - 无法弄清楚如何解决这个问题:“未捕获的 TypeError(webcam.snap 不是函数)”<--javascript
- wordpress - 如何在现代事件日历插件中访问和提取“事件”的属性,即事件日期、事件时间、事件成本、事件组织者
- python - 来自 YAML 格式的 PyQt TreeView 模型
- javascript - Service Worker - 打开网站时不缓存所有文件
- ios - SwiftUI:环境对象发布者不会在 onReceive 中发送更新
- python - 基于数组/字典的 if else 语句
- python - Python将图像附加到电子邮件作为签名