«

swoole hyperf 指定最多创建100个协程。

时间:2024-7-13 12:16     作者:xiang     分类:


应用场景

异步队列消费,大量创建协程序会导致mysql连接数用完,mysql压力大增,所以控制协程数跟mysql连接池数量相约。可以有效控制mysql的写入压力。

 public function handle()
    {
        $num=100;
        Co::set(['max_coroutine'=>$num]);
        for ($i=0;$i<1000;$i++) {
           $status=Co::stats();
           if($status['coroutine_num']<$num){
               go(function () {
                   Coroutine::sleep(1);
                   print_r($coroutineId = Coroutine::getuid()."\n");
               });
           }else{
                $this->main();
           }
        }
    }

    public function main()
    {
        print_r("no coroutine"."\n");
    }

  Co::set(['max_coroutine'=>$num]); 

设置最大协程数


 $status=Co::stats(); 
    $status['coroutine_num']

获取协程状态。
coroutine_num 当前运行的协程数量