Sidekiq 和 puma 共享同一个数据库连接池吗

Vip*_*mar 1 activerecord ruby-on-rails sidekiq

我正在运行一个生产应用程序

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
Run Code Online (Sandbox Code Playgroud)

一切都工作得很好,直到我们最近引入了并发性为 的 sidekiq Worker 8。因此,为了确保 sidekiq 的所有 8 个线程在最坏的情况下都能获得打开的连接,我们在 config/database.yml 中将池大小增加到 8

我的问题是 sidekiq 工作人员是否与 puma 工作人员共享相同的数据库池。所以假设,如果所有 8 个连接池都被 8 个 sidekiq 线程使用,并且同时有一个 Web 请求,是否会导致 ActiveRecord::ConnectionTimeoutError。

如果它们不共享同一个池,则不应出现错误。我想了解这种行为。我还了解到美洲狮的两名员工有自己的当地游泳池。他们不分享它。

谢谢

Mik*_*ham 5

它们是独立的进程;每个进程有 8 个连接。