10.task进程

//创建服务
//默认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执行完毕:执行完毕 已关闭连接

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,072评论 0 13
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,246评论 6 13
  • 开幕式 全校一至六年级的孩子盛装打扮,为今天的运动会开幕式添彩无数。 一1班迷彩套装下的小小人儿一个个丰姿飒爽,神...
    羚羊拐弯阅读 273评论 0 0
  • 它被一阵风带来 它停歇在我的窗前 它有漂亮的羽毛 它有优美的啼叫声 它被一阵风带走 我呼喊着 不要飞翔 只是随着风的方向
    木期颐阅读 183评论 2 2