ComposantsTaskGroup::spawn

TaskGroup::spawn ​

(PHP 8.6+, True Async 1.0)

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

Ajoute un callable au groupe avec une cle auto-incrementee (0, 1, 2, ...).

Si aucune limite de concurrence n'est definie ou qu'un emplacement est disponible, la coroutine est creee immediatement. Sinon, le callable avec ses arguments est place dans une file d'attente et demarre lorsqu'un emplacement se libere.

Parametres ​

task : Le callable a executer. Accepte tout callable : Closure, fonction, methode.

args : Arguments passes au callable.

Erreurs ​

Lance Async\AsyncException si le groupe est scelle (close()) ou annule (cancel()).

Exemples ​

Exemple #1 Utilisation de base ​

php
<?php

use Async\TaskGroup;

spawn(function() {
    $group = new TaskGroup();

    $group->spawn(fn() => "first");
    $group->spawn(fn() => "second");

    $group->close();
    $results = $group->all();

    var_dump($results[0]); // string(5) "first"
    var_dump($results[1]); // string(6) "second"
});

Exemple #2 Avec des arguments ​

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"
});

Voir aussi ​