thinkphp5+swoole实现异步邮件处理(SMTP方式)教程
1.首先,安装 swoole 扩展。详细流程可以在官方网站上查看。安装完swoole后,建议将swoole代码添加到你的IDE中! ? $serv = new \swoole_server('',8082);
$serv->set(array('task_worker_num' => 4));
$serv->on('接收', function($server , $fd, $from_id, $data) {
$task_id = $serv->task($data);
echo "开始交付异步任务 id=$task_id\n ";
});
$serv->on('task', function ($serv, $task_id, $from_id, $data) {
echo "获取异步任务 [id=$task_id]".PHP_EOL;
for of ($i = 0 ; $ifinish('');
});
$serv->on('finish', function ($serv, $task_id, $data) {
echo "异步任务 [id=$task_id] 完成" .PHP_EOL;
});
$serv->start();
}在服务器端,我们使用了20的字符串来模拟群发,并将其更改为另一个电子邮件地址。 ? , SWOOLE_SOCK_SYNC);
$ret = $client->connect("", 8082);
if(empty($ret)){
echo '错误!连接到 swoole_server 失败' ;
} else {
$client->send('blue');//这只是发送内容的简单实现
}
}3.打开服务器
这是必需的 使用 CLI,我们访问项目的根目录。
运行 netstat -apn | grep 8082
首先检查8082端口是否存在,如果存在则kill -9 PID(进程号)
kill进程
然后执行 然后我们可以使用 CLI 或浏览器访问来访问我们的客户端 ,说明我们发对了。 从图中的发送顺序,我们很容易判断已经实现了异步发送。 php public/index /index/syncSend cli 将端口 8082 置于监听状态。并保持此终端处于活动状态,以便我们可以检查发布的响应。
php public/index/index/index
一旦我们在客户端上执行一次,我们就可以访问终端服务器当您看到以下屏幕出现时屏幕:
接下来我们测试异步,因为服务器163会找到IP。如果同时传输不频繁,就会导致传输失败。所以,我们测试的时候,客户端会连续运行4次。 End方法
执行结果如下:
发送的邮件也已在邮箱中收到。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。