参考:https://www.easyswoole.com/QuickStart/Coroutine/waitGroup.html
EasySwoole的示例:
<?php
go(function () {
$ret = [];
$wait = new \EasySwoole\Component\WaitGroup();
$wait->add();
// 启动第 1 个协程
go(function () use ($wait, &$ret) {
// 模拟耗时任务 1
\co::sleep(0.1);
$ret[] = time();
$wait->done();
});
$wait->add();
// 启动第 2 个协程
go(function () use ($wait, &$ret) {
// 模拟耗时任务 2
\co::sleep(2);
$ret[] = time();
$wait->done();
});
// 挂起当前协程,等待所有任务完成后恢复
$wait->wait();
// 这里 $ret 包含了 2 个任务执行结果
var_dump($ret);
});
不支持
或者event-loop使用swoole试试
当前版本的webman或者workerman中可以引入swoole扩展吗?
其实我要做的是在后端把大文件分片上传到Aws的对象存储,又不想换框架,既然webman里暂时不支持这种写法,先用guzzle的postAsync去实现并行请求吧