1 异步任务的开发场景
秒杀 消息推送 类似crontab定时任务
PHP是同步阻塞的
群发消息:客户端发消息给服务端,之前是循环一个个发,swoole可以异步发送。大大提高效率
TCP服务端
<?php
//TCP服务器 速度快 http等协议都是建立在TCP之上
$server=new Swoole\Server('0.0.0.0',8082);
//服务配置参数
$server->set([
'worker_num'=>2,//工作线程 和CPU挂钩
'task_worker_num'=>4//异步任务线程
]);
//接收消息
$server->on('receive',function($server,$fd,$id,$data){
$task_id=$server->task($data);
echo '开始处理task id:',$task_id,PHP_EOL;
$server->send($fd,'投递成功');
});
$server->on('task',function($server,$task_id,$id,$data){
$str="receive id [id=$task_id]";
//处理数据
$server->finish('task执行完毕');
});
$server->on('finish',function($server,$task_id,$data){
echo 'success',$task_id,PHP_EOL;
});
$server->start();
TCP客户端
延展:如果用HTTP协议连接上面的服务端能不能访问上面的服务端?<

本文介绍了Swoole在PHP中如何实现异步任务处理,如秒杀消息推送和群发,以及TCP客户端与服务器之间的数据传输,特别提到了粘包问题。同时,文章还涉及到了微服务的概念。
最低0.47元/天 解锁文章
991

被折叠的 条评论
为什么被折叠?



