美文网首页
10.task进程

10.task进程

作者: 一个人的北京_ | 来源:发表于2019-07-06 15:16 被阅读0次
    //创建服务
    //默认tcp协议,在我们的硬件通信中使用较多
    $server = new Swoole\Server("0.0.0.0",9800);
    
    //设置进程数,必须为正正数,会产生2+worker_num个数个进程
    $server->set([
        'worker_num'=>2,
        'task_worker_num'=>3   //创建task进程
    ]);
    
    
    //事件监听
    //1。监听连接
    $server->on('connect',function($server, $fd){
        echo "已连接到服务器:{$fd}".PHP_EOL;
    });
    
    //2。接收到客户端消息
    $server->on('receive',function($server, $fd, $from_id, $data){
        //echo "接收到客户端消息:{$fd}".PHP_EOL;
        //$server->send($fd, "Server: 我是服务端");
    
        $data = ['tid'=>time()];
        $server->task($data);
    });
    
    //4。task回调
    $server->on('task',function($server,$task_id,$form_id,$data){
    
        echo "任务来自于{$form_id}".",由{$task_id}执行".PHP_EOL;
        $server->finish('执行完毕');
    });
    
    //5。finish回调
    $server->on('finish',function($server,$task_id,$data){
        echo "任务{$task_id}执行完毕:{$data}";
    });
    
    //3。连接关闭
    $server->on('close',function(){
        echo "已关闭连接".PHP_EOL;
    });
    
    //开启服务
    $server->start();
    

    测试:

    curl http://127.0.0.1:9800

    测试结果:

    任务来自于1,由0执行
    任务0执行完毕:执行完毕 已关闭连接
    任务来自于1,由1执行
    任务1执行完毕:执行完毕 已关闭连接
    任务来自于1,由2执行
    任务2执行完毕:执行完毕 已关闭连接
    任务来自于1,由3执行
    任务3执行完毕:执行完毕 已关闭连接

    相关文章

      网友评论

          本文标题:10.task进程

          本文链接:https://www.haomeiwen.com/subject/cabphctx.html