Ich lerne gerade, und wirklich mag das Schauspieler-Muster. Ich benutze Scala im Moment, aber ich bin interessiert an der Architektur im Allgemeinen, wie es in Scala, Erlang, Groovy usw. verwendet wird.Macht es Sinn, einen Pool von Akteuren zu benutzen?
Der Fall, an den ich denke, ist, wo ich Dinge tun muss gleichzeitig, wie zum Beispiel "einen Job ausführen".
Mit Threading, ich würde einen Thread-Pool und eine blockierende Warteschlange erstellen, und jeden Thread die blockierende Warteschlange abfragen und Jobs verarbeiten, wie sie in und aus der Warteschlange kamen.
Mit Schauspielern, was ist der beste Weg, damit umzugehen? Macht es Sinn, einen Pool von Akteuren zu erstellen und irgendwie Nachrichten an sie zu senden, die die Jobs enthalten? Vielleicht mit einem "Koordinator" Schauspieler?
Hinweis: Ein Aspekt des Falles, den ich war vergessen zu erwähnen: Was passiert, wenn ich die Zahl der Arbeitsplätze meine App verarbeitet gleichzeitig einschränken will? Vielleicht mit einer Konfigurationseinstellung? Ich dachte, dass ein Pool es leicht machen könnte, dies zu tun.
Danke!
Ja, es ist sinnvoll, die Anzahl der Akteure auf einer Aufgabenliste zu begrenzen. Zumindest gibt Erlang Ihnen genug Nebenläufigkeit, dass Sie die meisten Systemressourcen erschöpfen können, indem Sie genügend Prozesse erzeugen, die diese nutzen. – Christian
Ich habe versucht, diese Frage in einer gezielteren, konkreteren, konkreteren Weise hier umzuformulieren: http://stackoverflow.com/questions/2312195/how-to-limit-concurrency-when-using-actors-in-scala –