异步调用发送电子邮件(按钮单击后和重定向之前。)

时间:2016-09-24 21:56:12

标签: php codeigniter

我正在尝试执行以下操作:当用户点击'注册'按钮,我必须发送两封电子邮件(一封给管理员,一封给用户),然后再发送重定向。目前,用户在点击注册按钮后被重定向到欢迎页面之前有大约5秒的滞后。我想知道在Codeigniter或php中是否有任何方法可以使两个调用异步发送电子邮件。这两个函数(sendEmailToAdmin()sendPendingApprovalEmailToUser())都存在于控制器中。真诚地感谢您的帮助。

$this -> users_model -> set_user();
$this -> sendEmailToAdmin();
$email = $this -> input -> post('email');
$this -> sendPendingApprovalEmailToUser($email);
redirect('welcome');

2 个答案:

答案 0 :(得分:0)

您不需要异步执行此操作。您可以使用排队系统将作业推送到队列并立即重定向用户。队列工作人员将接收工作并发送电子邮件。

很少有流行的排队系统:

答案 1 :(得分:0)

我认为,如果使用curl来分叉2个进程来处理向用户和管理员发送电子邮件,那么立即重定向用户将减少等待时间,因为发送电子邮件可能只是停留并在服务器端运行,用户不需要除了接收电子邮件之外还要参与其中。