Ich habe einen Actor-Pool von 100 aktiven Actors, die sich einen Work-Stealing-Dispatcher teilen, wobei CorePoolSize auf 100 gesetzt ist. Aber jetzt, wenn 19 Nachrichten an einen der Actors gesendet werden, sind die 19 Nachrichten nicht parallel zu 19 Actors 5 Nachrichten werden parallel ausgeführt. Wenn diese 5 Nachrichten beendet sind, werden die nächsten 5 Nachrichten von denselben 5 Akteuren erneut verarbeitet und so weiter. Warum laufen meine 19 Nachrichten nicht parallel, was fehlt mir hier?
Mein Code sieht grundsätzlich so aus:
%Vor%Die Ausgabe:
%Vor%edit: Ich benutze Akka 1.0
danke für Ihre Anfrage, ich lokalisierte den Engpass und reparierte es in diesem Commit zu Akka Master:
Es wird in Akka 1.1-RC1 veröffentlicht werden
Prost, √
Ich denke, der Dispatcher ermöglicht es Ihnen, die Durchsatzeigenschaft anzupassen. Dies definiert die Anzahl der Nachrichten für einen bestimmten Akteur, den der Dispatcher in einem einzigen Durchlauf verarbeiten soll. Sie könnten die folgende Konfiguration in Ihrer akka.conf-Datei hinzufügen
%Vor%Standardmäßig ist es 5