Ich habe Probleme, ein passendes Konstrukt für den gegebenen Anwendungsfall zu finden.Halten Sie X-Anfragen parallel, bis N Anfragen abgeschlossen
Ich habe eine Funktion, die für die angegebene Eingabezeichenfolge eine Single<String>
generiert. Diese Single
ist eine Kombination aus mehreren Aufgaben, die voraussichtlich bis zu einer halben Minute dauern, aber ich denke, das ist nicht relevant für die Frage.
Das Verhalten, das ich versuche zu erreichen, ist 5 dieser Aufgaben aktiv parallel mit dem Ziel, N Aufgaben abzuschließen. Da die Aufgaben nicht nur zeitlich hoch sind, sollten keine überzähligen Aufgaben gestartet werden, die später verworfen werden. Es ist nicht wichtig, die Ergebnisse dieser Aufgaben irgendwie zusammenzuführen, ich behalte einfach jedes Ergebnis in onSuccess
.
Also im Grunde mein Plan ist es, eine Zählervariable zu haben, die dann bei 0 beginnt, in einer Schleife, erzeugen 5 Single
, den Zähler um 5. Melden Sie sich an ihnen zu erhöhen, onComplete
den Zähler und onTerminate
wenn counter
< N zu erhöhen, Starten Sie einen anderen Single
.
Am Ende fehlt mir jedoch ein guter Weg, um die rekursiv erzeugten Single
Objekte zu verfolgen, aber ich muss warten, bis N fertig sind.
Gibt es ein Konstrukt zur Verfügung, das dies leicht machen würde, oder sollte ich versuchen, dies mit Zählern oder einer Liste von zu erreichen?