由于池中缺少数据库连接,Sidekiq中的作业不断出错

时间:2013-11-10 20:52:15

标签: ruby-on-rails-3 background-process sidekiq

我真的从根本上误解了在后台处理器中排队工作的目的。为什么在没有数据库连接的情况下开始工作?这是我继续得到的错误:

could not obtain a database connection within 5 seconds (waited 5.397317172 seconds). The max pool size is currently 25; consider increasing it.

我不知道在有可用的数据库连接之前我应该​​如何告诉作业不执行。我到处寻找。我有点认为这是排队工作的目的......等到执行所需的基本资源可用。

我的数据库连接池是默认的5.现在是25,这是在没有运行Web服务器的实用程序实例上。

我能做些什么来确保我的工作不会像这样失败?

1 个答案:

答案 0 :(得分:3)

默认情况下,sidekiq会创建 25 处理器。因此,您必须将AR连接池大小设置为 25 始终将池大小设置设置为接近或等于处理器数)。