ここでのパーティーにはかなり遅れましたが、今日の本番環境ではデータベース接続が不足しました。
多くの人と同じように、私はSidekiqを使用して、たとえば電子メールの送信などの非同期ジョブを実行します。 Sidekiqはマルチスレッドプロセスとして実行されることに注意することが重要です。
だから、私はただではありません シングルスレッドのRailsアプリケーションを使用しているため、この回答は質問に直接当てはまりませんが、マルチスレッドのRailsアプリは現在比較的正常であると思うので、ここで何かを言う価値があると思いました。
これは、キューに入れることができ、5秒(エラーをスローする前にデータベース接続を待機するデフォルトのタイムアウト期間)より長くかかる可能性のあるすべてのジョブを処理するのに十分な接続を作成するようにプールサイズを調整する必要があることを意味します。