TaskGroup::spawn

(PHP 8.6+, True Async 1.0)

public TaskGroup::spawn(callable $task, mixed ...$args): void

Fuegt 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

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

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