Sequel を使用して、Rack webapp から MySQL データベースと通信しています。場合によっては、アプリケーションがアイドル状態のwait_timeout
ままで、サーバー上でそれを超えることがあります (デフォルトの 8 時間のままにしています)。例外は、有効にできることを示唆していますautoReconnect
が、明らかにそれは推奨されていません。とにかく、その場合でも例外が発生し、操作を再試行する必要があります。
が悪いパターンの場合autoReconnect
、どのパターンを使用すればよいですか? 私がやりたいことは
DB["myDB"].pool.hold do | conn |
... do stuff
end
もちろん、接続が古い場合はスローされます。すべてを begin-rescue でラップして再試行することもできますが、プールが大きい場合は、機能するプールが見つかるまでに 10 回または 20 回再試行することになる可能性があります。