2013-03-04 11 views
6

Czy istnieje elegancki sposób na wykonanie twardego restartu aktora - czyszczenie skrzynki pocztowej wraz ze stanem wewnętrznym?Dyrektywa Hard Rest w Akka?

Wiem, że można to zrobić, dzwoniąc pod numer context.stop i ponownie inicjując wiadomość DeathWatch/Terminated, ale jest to nieco niezgrabne.

Odpowiedz

5

Nie, wyczyszczenie skrzynki pocztowej jest dokładnie tym, co robi się przez zakończenie działania aktora. Gdybyście spróbowali tego bez semantycznego zakończenia, jak moglibyście mieć pewność, że wszystko oczyścicie? Nowe wiadomości mogą pojawić się w dowolnym momencie.

Tak, aby to zrobić twardy restart ty

  • powrót dyrektywy ze strategii nadzorcy
  • Stop następnie utworzyć nowe dziecko po otrzymaniu tego aktora Terminated wiadomość.