开启协程后 查询2000条数据 速度是快了好多哦
public function test(Request $request)
{
$channel = new Channel(10);
$wg = new WaitGroup();
//循环使用
for ($i = 0; $i < 10; $i++){
$wg->add();
Coroutine::create(function () use($i,$wg,$channel) {
$on_line_log_data = OnlineLog::listData('',[],200);//模拟耗时操作
$channel->push(['index' => $i,'data' => $on_line_log_data],2);
$wg->done();
});
}
$wg->wait();
$data = [];
$length = $channel->length();
for($i=0;$i<$length;$i++){
$data[] = $channel->pop(1);
}
return successMsg();
}
个评论
咋在项目里实际使用?
自己看啊:https://www.workerman.net/doc/webman/coroutine/coroutine.html
主要还是看你场景吧,https://www.workerman.net/doc/webman/coroutine/coroutine.html 这个文档中已经把大部分说道了,还是要活用吧。
你这代码写的太啰嗦了,其实这样就行了
厉害 厉害 是的 寻思多测几个属性。