Her ikisi de stop
ve PoisonPill
aktörü sonlandıracak ve ileti sırasını durduracaktır. Aktörün mesajları işlemeyi durdurmasına, tüm çocuklarına bir durdurma çağrısı göndermesine, sonlanmalarını beklemesine ve ardından çağrısını çağrmasına neden olurlar postStop
. Diğer tüm mesajlar ölü mektuplar posta kutusuna gönderilir.
Fark, bu sekans başlamadan önce mesajların işlenmesidir. stop
Çağrı durumunda, o anda işlenmekte olan mesaj ilk önce tamamlanır, diğer tüm mesajlar atılır. Bir gönderirken PoisonPill
, bu sadece kuyruktaki başka bir mesajdır, bu nedenle sıra PoisonPill
alındığında başlar. Sırada bekleyen tüm iletiler ilk önce işlenir.
Bunun aksine, Kill
mesaj aktörün ActorKilledException
normal denetleyici mekanizması kullanılarak ele alınan bir fırlatmasına neden olur . Dolayısıyla, buradaki davranış, yönetici stratejinizde tanımladığınıza bağlıdır. Varsayılan, aktörü durdurmaktır. Ancak posta kutusu devam eder, bu nedenle aktör yeniden başlatıldığında hataya neden olanın dışındaki eski iletilere sahip olur.
Ayrıca dokümanlardaki 'Aktörü Durdurma', 'Aktörü Öldürme' bölümüne bakın:
http://doc.akka.io/docs/akka/snapshot/scala/actors.html
Denetim stratejileri hakkında daha fazlası:
http://doc.akka.io/docs/akka/snapshot/scala/fault-tolerance.html