Swoole千万PV网站异步任务开发

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

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协议连接上面的服务端能不能访问上面的服务端?<

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值