私は基本的にこれをやっています:
- REQ ソケットを持ち、REP (ハートビート) に接続します
- 接続がタイムアウトした場合 (
setTimeOut
)、カウンターを増やします - カウンターが所定のしきい値よりも大きい場合は、反対側を DOWN としてマークします (ハートビートではありません)。
- 反対側が応答した場合、カウンターをリセットします。
- 繰り返す
これには、タイムアウトが発生したときに次のsend
メソッドが発生するという問題があります。
Exception in thread "Thread-1" org.zeromq.ZMQException: Operation cannot be accomplished in current state(0x9523dfb)
どうすればよいかわかりません。これはaである程度解決されましたPoller
が、やり過ぎのようです。ここで最善のアプローチは何ですか?ソケットを再作成しますか? 別の戦略を試してください (PUSH-PULL かな?)。
ありがとうございました。