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

 我来答
腾讯电脑管家
2018-08-10 · 百度知道官方认证企业
腾讯电脑管家
腾讯电脑管家是腾讯公司推出的免费安全管理软件,能有效预防和解决计算机上常见的安全风险,并帮助用户解决各种电脑“疑难杂症”、优化系统和网络环境,是中国综合能力最强、最稳定的安全软件。
向TA提问
展开全部
  • 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); //添加短信发送记录

  • }

  • }

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式