Ich benutze Akka Schauspieler in Scala. Ich würde gerne wissen, ob es einen Weg gibt, einen Akteur zu haben, der während der Verarbeitung einer empfangenen Nachricht sein Postfach periodisch auf andere Nachrichten überprüfen kann und diese Nachrichten anschließend seine Variablen ändern kann.Wie man periodisch ein Akteurpostfach überprüft und Variablen in scala ändert
Ein Schema wie:
class Actor1 (constructors){
def receive={
case "go" => run() //the actor starts
case "alter variables" // a new message is stashed in mailbox
}
def run={
//do stuff
check(mailbox) //while the porocessing of the "go" message
// is not finished
if ("alter variables" in mailbox) {
change a variable value
}
}
}
Ich weiß nicht, warum Sie das tun würden, aber ich denke, es würde die Entwurfsmuster durchbrechen, die Akka durchzusetzen versucht, also würde ich davon abraten. Sie können etwas ähnliches einrichten, indem Sie Ihre eigene Warteschlange implementieren, in die Sie die Nachrichten einfügen, und über einen anderen Mechanismus verfügen, der die Überprüfung dieser Warteschlange ermöglicht. – childofsoong
Dies ist nicht möglich. Schauspieler verarbeiten * eine Nachricht zu einer Zeit *. Auf diese Weise garantieren sie einen sicheren veränderbaren Zustand in einer gleichzeitigen Umgebung. – Ryan