TaskSet::__construct

(PHP 8.6+, True Async 1.0)

public TaskSet::__construct(?int $concurrency = null, ?Async\Scope $scope = null)

Crée un nouvel ensemble de tâches avec nettoyage automatique des résultats après livraison.

Paramètres

concurrency
Nombre maximum de coroutines s’exécutant simultanément. null — aucune limite, toutes les tâches démarrent immédiatement. Lorsque la limite est atteinte, les nouvelles tâches sont placées dans une file d’attente et démarrées automatiquement lorsqu’un emplacement se libère.
scope
Scope parent. TaskSet crée un scope enfant pour ses coroutines. null — le scope courant est hérité.

Exemples

Exemple #1 Sans limite

<?php

use Async\TaskSet;

$set = new TaskSet();
$set->spawn(fn() => "task 1"); // démarre immédiatement
$set->spawn(fn() => "task 2"); // démarre immédiatement
$set->spawn(fn() => "task 3"); // démarre immédiatement

Exemple #2 Avec limite de concurrence

<?php

use Async\TaskSet;

$set = new TaskSet(concurrency: 2);
$set->spawn(fn() => "task 1"); // démarre immédiatement
$set->spawn(fn() => "task 2"); // démarre immédiatement
$set->spawn(fn() => "task 3"); // attend dans la file

Voir aussi