TaskSet::__construct
(PHP 8.6+, True Async 1.0)
public TaskSet::__construct(?int $concurrency = null, ?Async\Scope $scope = null)
Создаёт новый набор задач с автоматической очисткой результатов после доставки.
Параметры
- concurrency
- Максимальное количество одновременно работающих корутин.
null— без ограничений, все задачи запускаются сразу. При достижении лимита новые задачи помещаются в очередь и запускаются автоматически при освобождении слота. - scope
- Родительский scope. TaskSet создаёт дочерний scope для своих корутин.
null— наследуется текущий scope.
Примеры
Пример #1 Без ограничений
<?php
use Async\TaskSet;
$set = new TaskSet();
$set->spawn(fn() => "задача 1"); // запускается сразу
$set->spawn(fn() => "задача 2"); // запускается сразу
$set->spawn(fn() => "задача 3"); // запускается сразу
Пример #2 С ограничением конкурентности
<?php
use Async\TaskSet;
$set = new TaskSet(concurrency: 2);
$set->spawn(fn() => "задача 1"); // запускается сразу
$set->spawn(fn() => "задача 2"); // запускается сразу
$set->spawn(fn() => "задача 3"); // ждёт в очереди
См. также
- TaskSet::spawn — Добавить задачу
- TaskGroup::__construct — Конструктор TaskGroup