发送邮件的操作一般是比较耗时的,所以我们一般采用异步或者队列来执行。
php使用redis的publish/subscribe也是一种不错的选择,这在以前的一篇博文中写过。
http://blog.csdn.net/koastal/article/details/52813669
php语言本身是不支持异步操作的,不过我们可以通过swoole扩展实现异步功能,这个异步功能基于tcp协议,相应速度还是不错的。
建立执行异步任务的tcp服务器
http://wiki.swoole.com/wiki/page/481.html
$serv = new swoole_server("127.0.0.1", 9501);
//设置异步任务的工作进程数量
$serv->set(array('task_worker_num' => 4));
$serv->on('receive', function($serv, $fd, $from_id, $data) {
//投递异步任务
$task_id = $serv->task($data);
write("收到异步任务:id=$task_id,data=$dat