简单代码使用 swoole 多进程

一、任务

向用户先发送邮箱验证码,然后向用户发送手机验证码。如果是单进程,需要等待邮箱验证码发送完毕才能发送手机验证码,存在一定的耗时。可使用多进程:一个进程发送邮箱验证码,另一个进程发送手机验证码。

<?php

$info = array(
    'email' => "12345@qq.com", 
    'phone' => 13333333333,
);

$mail_process = new swoole_process('sendMail', true);

$mail_process->start();

$sms_process = new swoole_process('sendSMS', true);

$sms_process->start();

echo $mail_process->read();                             // 读取管道中子进程写入的内容

echo PHP_EOL;                                           // 输出换行

echo $sms_process->read();

echo PHP_EOL;

function sendMail(swoole_process $worker) {
    global $info;
    sleep(2);
    $worker->write("send Mail to " . $info['email']);   // 子进程向管道写入内容
}

function sendSMS(swoole_process $worker) {
    global $info;
    sleep(2);
    $worker->write("send SMS to " . $info['phone']);
}

// 最后打印可见输出的发送邮件与发送手机验证码是同时出现的,说明是两个进程同时处理的结果

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Swoole是一个为PHP用C和C++编写的基于事件的高性能异步&协程并行网络通信引擎。同时也是PHP的异步、并行、高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole内置了Http/WebSocket服务器端/客户端、Http2.0服务器端。 Swoole底层内置了异步非阻塞、多线程的网络IO服务器。PHP程序员仅需处理事件回调即可,无需关心底层。与Nginx/Tornado/Node.js等全异步的框架不同,Swoole既支持全异步,也支持同步。 除了异步IO的支持之外,Swoole为PHP多进程的模式设计了多个并发数据结构和IPC通信机制,可以大大简化多进程并发编程的工作。其中包括了并发原子计数器,并发HashTable,Channel,Lock,进程间通信IPC等丰富的功能特性。 Swoole从2.0版本开始支持了内置协程,可以使用完全同步的代码实现异步程序。PHP代码无需额外增加任何关键词,底层自动进行协程调度,实现异步。 Swoole可以广泛应用于互联网、移动通信、企业软件、网络游戏、物联网、车联网、智能家庭等领域。 使用PHP+Swoole作为网络通信框架,可以使企业IT研发团队的效率大大提升,更加专注于开发创新产品。 Swoole是开源免费的自由软件,授权协议是Apache2.0。企业和个人开发者均可免费使用Swoole代码,并且在Swoole之上所作的修改可用于商业产品,无需开源(注:必须保留原作者的版权声明)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘广宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值