Je suis en train de concevoir un acteur qui consomme des éléments à partir d'un flux infini et qui a besoin d'un moyen de contrôler quand il démarre et arrête d'utiliser des messages. Existe-t-il un modèle commun pour implémenter des boucles interruptibles comme celle-ci avec les acteurs? Je pensais juste à ce que mon acteur envoie des messages à lui-même. Quelque chose comme (pseudo Scala):Modèle pour les boucles interruptibles utilisant des acteurs
class Interruptible extends Actor {
val stream: Stream
val running: boolean
def receive = {
case "start" => {
running = true
consumeItem
}
case "stop" => {
running = false
}
case "consumeNext" => consumeItem
}
def consumeItem {
if (running) {
stream.getItem
this ! "consumeNext"
}
}
}
Est-ce la meilleure façon de faire les choses?
Merci!
Selon nos derniers chiffres ne Akka environ 3 millions de messages par seconde sur une machine à 8core. Êtes-vous sûr de ne pas optimiser prématurément ici? –
Merci pour votre réponse, Viktor. J'ai reformulé la question sur le design. J'essaie juste de comprendre le modèle de l'acteur! Akka est super, BTW. -D – spieden