2016-03-24 10 views
1

Orijinal açıklama bazı soruşturma sonra güncellenir.Akka'da sorunlu mesajın sorgusu tekrarlanarak nasıl işlenir?</p> <p>Ben sor desen aracılığıyla bir aktör bir mesaj gönderdiğinizde, ve aktör mesajı tekrar işlenir, bir istisna ile başarısız:

Yeniden denemelerin sayısı değişiyor ve ilkeyi anlayamadım. Çoğu denememde 3 kez başarısız bir mesaj deneniyor.

Ask-pattern davranışını nasıl ince ayarlayabilirim (örneğin, tahmini yeniden deneme sayısını ayarla)?

+0

Nasıl mesajın kendisine girişimleri bir dizi eklemeye ne dersiniz? Mesaj geldiğinde, artırılmış sayacı olan bir klon oluşturun. Sonra, denemelerin sayısının sınırı aşıp aşmadığını kontrol edip mesajı bir oyuncuya bırakıp bırakmadığınızı kontrol edebilirsiniz. 'RetryMessage (yük, sayaç) sayacı> limit => // 'i düşürdüyse' – kukido

cevap

1

Sorunuz, varsayılan olarak değil varsayılan olarak tanımladığınızı düşündüğümden dolayı bana biraz kafa karıştırıcı oluyor. Hatalı bir mesaj, varsayılan olarak 3 kez işlenmez. Varsayılan olarak, bir Aktörde bir istisna meydana gelirse, yeniden başlatılır ve bir sonraki mesajla devam eder. Sorularınıza http://doc.akka.io/docs/akka/current/scala/fault-tolerance.html#Default_Supervisor_Strategy

Yani bakınız:

nasıl aktör yeniden başlar, ancak başarısız mesajı atlayacak ve tekrar ve tekrar işlemek denemez mantığı uygulayabilir?

Varsayılan değer budur.

Koruyucu oyuncu varsayılan denetleyicisi nasıl uygulanır? birisinin bu yeri Github'da nasıl bulacağına dair bir fikri varsa, oldukça faydalı olacaktır.

https://github.com/akka/akka/blob/master/akka-actor/src/main/scala/akka/actor/FaultHandling.scala#L154

+0

Bazı soruşturma yaptım ve sorma-desenini kullanmanın tüm bu denemelere neden olduğu ortaya çıktı. Açıklamayı güncelledim – Roman