Точное поведение, которое мне нужно, - это установить тайм-аут для каждой задачи в 120 секунд и иметь возможность собирать результаты всех успешных задач, одновременно записывая неудачи.
Приблизительный набросок код:
Код: Выделить всё
// Turn an async instance (data pipeline method) to a future using an AMPParallelTask wrapper.
$toFuture = fn(Asynchronous $instance) => submit(new AMPParallelTask($instance, $securableId, $securableType, $accountId),
new TimeoutCancellation(0.1)
)->getFuture();
[$errors, $responses] = awaitAll(
array_map($toFuture, $asynchronousInstances)
)
Мне интересно, есть ли способ выполнить то, что я хочу, не отказываясь от всех попыток {} catch (Exception $e) { блокирует логику выполнения? Моя интуиция подсказывает, что, возможно, я смогу использовать каналы...?
Источник: https://stackoverflow.com/questions/781 ... d-before-a
Мобильная версия