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