TaskGroup::spawn
(PHP 8.6+, True Async 1.0)
php
public TaskGroup::spawn(callable $task, mixed ...$args): voidFuegt ein Callable mit einem automatisch inkrementierten Schluessel (0, 1, 2, ...) zur Gruppe hinzu.
Wenn kein Parallelitaetslimit gesetzt ist oder ein Platz verfuegbar ist, wird die Coroutine sofort erstellt. Andernfalls wird das Callable mit seinen Argumenten in eine Warteschlange gestellt und gestartet, sobald ein Platz frei wird.
Parameter
task : Das auszufuehrende Callable. Akzeptiert jedes Callable: Closure, Funktion, Methode.
args : Argumente, die an das Callable uebergeben werden.
Fehler
Wirft Async\AsyncException, wenn die Gruppe versiegelt (seal()) oder abgebrochen (cancel()) ist.
Beispiele
Beispiel #1 Grundlegende Verwendung
php
<?php
use Async\TaskGroup;
spawn(function() {
$group = new TaskGroup();
$group->spawn(fn() => "erste");
$group->spawn(fn() => "zweite");
$group->seal();
$results = $group->all();
var_dump($results[0]); // string(5) "erste"
var_dump($results[1]); // string(6) "zweite"
});Beispiel #2 Mit Argumenten
php
<?php
use Async\TaskGroup;
spawn(function() {
$group = new TaskGroup();
$group->spawn(function(int $id) {
return "user:$id";
}, 42);
$group->seal();
$results = $group->all();
var_dump($results[0]); // string(7) "user:42"
});Siehe auch
- TaskGroup::spawnWithKey --- Eine Aufgabe mit explizitem Schluessel hinzufuegen
- TaskGroup::all --- Auf alle Aufgaben warten