1

InterProcessSemaphoreMutex キュレーター レシピを使用して、アプリケーション プロセスが常にシングルトンであることを確認しています。一時的なネットワーク エラーやアプリケーションの一時停止 (GC などによる) が原因で、ミューテックスが失われることがあります。プロセスがロックの再取得を試行できるように、再試行ポリシーを使用しています。(たとえば) 5 分以内にロックを再取得できない場合、アプリケーション プロセスを終了させたいと考えています。

レシピのドキュメントでは、ConnectStateChange イベントをリッスンできることが示唆されています。Zookeeper への接続が失われたことを示すイベント LOST が失われたため、プロセスもロックを失いました。このようにして、プロセスはロックを失ったかどうかを検出できます。

プロセスがロックの再取得に成功したかどうかを確認するにはどうすればよいですか? この情報を提供できるミューテックスのメソッドが見つかりません。疑わしいほど有用な「isAcquiredInThisProcess」メソッドは、実際にはその情報を提供しません。

4

1 に答える 1