'da olay akışına göre farklı öncelikli iletileri kullanma Olay akışına farklı türlerde iletiler yayınlamam gerekir ve iletilerinin farklı önceliklere sahip olması gerekir, örneğin, A tipi 10 ileti gönderildiyse, ve B tipi bir mesajın hepsinden sonra yayınlanır ve B'nin önceliğinden önceliği A - mesajının önceliğinden yüksektir B sıradaki 10 mesaj A olsa bile bir sonraki aktör tarafından alınmalıdır.Akka :: ActorSystem
Ben öncelikli mesajlar here hakkında okumak ve bu posta kutusunun benim basit uygulama oluşturdunuz:
class PrioritizedMailbox(settings: Settings, cfg: Config) extends UnboundedPriorityMailbox(
PriorityGenerator {
case ServerPermanentlyDead => println("Priority:0"); 0
case ServerDead => println("Priority:1"); 1
case _ => println("Default priority"); 10
}
)
sonra dosyasına koyarak
akka {
actor {
prio-dispatcher {
type = "Dispatcher"
mailbox-type = "mailbox.PrioritizedMailbox"
}
}
}
bunu yapılandırılmış ve benim aktör haline kablolu:
private val myActor = actors.actorOf(
Props[MyEventHandler[T]].
withRouter(RoundRobinRouter(HIVE)).
withDispatcher("akka.actor.prio-dispatcher").
withCreator(
new Creator[Actor] {
def create() = new MyEventHandler(storage)
}), name = "eventHandler")
Ben ActorSystem.eventStream.publish kullanıyorum İleti göndermek için ve benim benim abone abone (iletileri işlenir, ancak FIFO siparişinde günlükleri görebilirsiniz).
Ancak, yeterli değil gibi görünüyor, çünkü günlüklerde/konsolda "Varsayılan öncelik" gibi mesajlarını hiç görmedim. Burada bir şey mi eksik? açıklanan yaklaşımı, olay akışlarıyla mı çalışır, yoksa doğrudan doğrudan aktörler ile aktöre mesaj gönderir mi? Ve eventStream ile öncelikli mesajlar nasıl alabilirim?