actorForを介してactorRefを取得したリモートアクターが生きているかどうかを確認するにはどうすればよいですか?ドキュメントへの参照をいただければ幸いです。ScalaのAkkaを使用しています。
スーパーバイザーやデスウォッチへの言及を見たことがありますが、私のユースケースにそのような重機が必要だとは感じていません。マスターが既知のパスを使用して稼働しているかどうか、およびマスターが自己紹介メッセージを送信しているかどうかをクライアントに確認してもらいたいだけです。マスターが起動していない場合は、少し待ってから再試行する必要があります。
更新2: 提案は、ピンポンアスクテストを使用して、それが生きているかどうかを確認することです。私はこれが次のようなものであると理解しています
implicit val timeout = Timeout(5 seconds)
val future = actor ? AreYouAlive
try{
Await.result(future, timeout.duration)
}catch{
case e:AskTimeoutException => println("It's not there: "+e)
}
ログに例外があり、現在はそこに残っていることに混乱していると思います。例えば
- エラー:java.net.ConnectException:接続が拒否されました
- エラー:java.nio.channels.ClosedChannelException:null
おそらくこれはまさにそれがどのように機能するかであり、私はそれらから保護しようとするのではなく、ログのエラー/警告を受け入れる必要がありますか?