使用spatie async库来写异步的PHP代码
程序员文章站
2022-02-02 20:27:37
...
composer require spatie/async
同步代码
foreach (range(1, 5) as $i) {
$output = $i * 2;
echo $output . "\n";
}
使用异步代码
include 'vendor/autoload.php';
use Spatie\Async\Pool;
$pool = Pool::create();
foreach (range(1, 20) as $i) {
$pool[] = async(function () use ($i) {
$output = $i * 2;
return $output;
})->then(function (int $output) {
echo $output . "\n";
});
}
await($pool);
$pool
->add(function () {
// 要在并行进程中执行的任务
})
->then(function ($output) {
// 如果成功,进程或者你传递到队列的回调函数会返回`$output`。
})
->catch(function ($exception) {
// 当进程内抛出异常时,它会被捕获并传递到这里。
})
->timeout(function () {
// 哦,不! 一个过程花了太长时间才完成。 让我们做点什么吧
})
;
上一篇: QrCode 生成二维码