为了账号安全,请及时绑定邮箱和手机立即绑定

利用php +swoole如何实现异步任务队列

利用php +swoole如何实现异步任务队列

蓝山帝景 2019-03-03 08:04:29
利用php +swoole如何实现异步任务队列
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

  • class msgServer

  • {

  • private $serv;


  • function __construct()

  • {


  • $this->serv = new Swoole\Server("127.0.0.1", 9501);//创建一个服务

  • $this->serv->set(array('task_worker_num' => 4)); //配置task进程的数量

  • $this->serv->on('receive', array($this, 'onReceive'));//有数据进来的时候执行

  • $this->serv->on('task', array($this, 'onTask'));//有任务的时候执行

  • $this->serv->on('finish', array($this, 'onFinish'));//任务结束时执行

  • $this->serv->start();

  • }



  • public function onReceive($serv, $fd, $from_id, $data)

  • {

  • $data = json_decode($data, true);

  • $task_id = $serv->task($data);//这里发起了任务,于是上面的on('task', array($this, 'onTask'))就会执行


  • }


  • public function onTask($serv, $task_id, $from_id, $data)

  • {

  • $data['send_res'] = $this->sendMsg($data); //发送短信

  • //1.7.3之前,是$serv->finish("result");

  • return "result.";//这里告诉任务结束,于是上面的on('finish', array($this, 'onFinish'))就会执行

  • }


  • public function onFinish($serv, $task_id, $data)

  • {

  • $this->addSendLog($data); //添加短信发送记录

  • }

  • }





查看完整回答
反对 回复 2019-03-10
  • 1 回答
  • 0 关注
  • 690 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信