【发布时间】:2021-06-19 00:06:58
【问题描述】:
我正在运行一个生产应用程序
rails 6.0.3.
Puma currently runs with 1 worker and 5 threads.
Also the database connection pool is set to 5 in config/database.yml.
mysql: 5.7
在我们最近引入了并发为8 的sidekiq worker 之前,一切正常。
因此,为了确保 sidekiq 的所有 8 个线程都能在最坏的情况下获得打开的连接,我们在 config/database.yml 中将池大小增加到 8
我的问题是 sidekiq worker 是否与 puma worker 共享同一个数据库池。 所以假设,如果所有 8 个连接池都被 8 个 sidekiq 线程使用,同时有一个 web 请求,是否会导致 ActiveRecord::ConnectionTimeoutError。
如果它们不共享同一个池,则不应出现错误。 我想了解这种行为。此外,我了解 puma 的两名工人有自己的本地游泳池。他们不分享它。
谢谢
【问题讨论】:
标签: ruby-on-rails activerecord sidekiq