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 = https://www.it610.com/article/['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
测试结果: 【10.task进程】任务来自于1,由0执行
任务0执行完毕:执行完毕 已关闭连接
任务来自于1,由1执行
任务1执行完毕:执行完毕 已关闭连接
任务来自于1,由2执行
任务2执行完毕:执行完毕 已关闭连接
任务来自于1,由3执行
任务3执行完毕:执行完毕 已关闭连接
推荐阅读
- django-前后端交互
- 多线程NSOperation
- IDEA|IDEA 创建工程
- 创建缔造完美教室,让每一间教室都闪闪发光
- Android|Android Kotlin实现AIDL跨进程通信
- Servlet原理|Servlet原理 二(Web应用与创建Servlet实例)
- 企业为什么要融资
- 热点文章|鸢尾花预测(如何创建机器学习Web应用程序())
- 诚实表达,创建连接维护界限
- FTP创建