我只想在用户注册时将电子邮件排队。因此,当用户发布注册表格时,我会这样做:

Mail::queue('emails.activate', $data, function($message) use ($user)
{
  $message->from('[email protected]', 'Mysite.com');
  $message->to($user->email, $user->username)->subject('Welcome');
});

队列监听器正在运行(php artisan queue:listen),并且主管进程确保队列监听器如果停止将重新启动。

它可以正常工作,用户会收到电子邮件,但是注册时的HTTP响应非常缓慢,这与我希望直接发送电子邮件时所期望的完全一样。如果我注释了上面所有的排队代码,则HTTP响应时间就可以了。

我在queue.app中使用同步驱动程序:
'default' => 'sync',
'connections' => array(

    'sync' => array(
        'driver' => 'sync',
    ),
    etc...

最后,我使用postfix运行自己的私有(private)服务器(Ubuntu)。有人可以帮我弄清楚为什么我在排队电子邮件时响应如此缓慢吗?

最佳答案

同步驱动程序在Laravel结束执行之前就运行其排队的作业。这就是为什么它被称为同步驱动程序,您需要对其进行更改以实现所需的功能。

关于php - 使用同步驱动程序在Laravel 4中排队电子邮件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21048339/

10-13 02:15