Ja, wenn Sie auf any warten möchten, legen Sie einfach ein receiveTimeout fest: Ссылка
(Die Dokumentation ist hier leicht irreführend, Sie können das receiveTimeout auch nach jeder Nachricht einstellen)
Es ist möglich, werfen Sie einen Blick auf Akka Actor "Fragen" und "Warten" mit TimeoutException . Aber denken Sie daran, dass das Blockieren innerhalb eines Schauspielers eine sehr schlechte Idee ist, da der Schauspieler während dieser Zeit keine anderen Nachrichten verarbeiten kann. Außerdem blockiert es einen Akka-Verarbeitungs-Thread.
Ein besserer Ansatz besteht darin, eine Nachricht zu senden ( fire and forget ) und ein Timeout-Ereignis mit Akka Scheduler . Wenn die Antwort eintrifft, brechen Sie dieses Ereignis ab oder setzen Sie ein Flag, damit es nicht ausgelöst wird, wenn die Antwort tatsächlich pünktlich kam.
Könnte ein Overkill sein, aber Sie können sich den Endlichen Automaten (FSM) ansehen
%Vor%Hier ist es in Aktion:
%Vor%