KomponentenTaskGroup::spawn

TaskGroup::spawn ​

(PHP 8.6+, True Async 1.0)

php
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 geschlossen (close()) 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->close();
    $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->close();
    $results = $group->all();
    var_dump($results[0]); // string(7) "user:42"
});

Siehe auch ​