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