Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用同步驱动程序在Laravel 4中排队发送电子邮件_Php_Email_Laravel 4_Queue - Fatal编程技术网

Php 使用同步驱动程序在Laravel 4中排队发送电子邮件

Php 使用同步驱动程序在Laravel 4中排队发送电子邮件,php,email,laravel-4,queue,Php,Email,Laravel 4,Queue,我只想在用户注册时将电子邮件排队。因此,当用户发布注册表时,我会这样做: Mail::queue('emails.activate', $data, function($message) use ($user) { $message->from('no-reply@mysite.com', 'Mysite.com'); $message->to($user->email, $user->username)->subject('Welcome'); });

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

Mail::queue('emails.activate', $data, function($message) use ($user)
{
  $message->from('no-reply@mysite.com', '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...

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

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

Ok,这很有意义。我只是假设这是Symfony2的“电子邮件假脱机”功能……同步驱动程序比这简单,您必须使用不同的驱动程序:)您可以在开发时使用邮件配置文件中的
假装
功能。除此之外,您还需要更改队列驱动程序以获得正确的队列。好的,我将查看Beanstalkd。谢谢那么,它是在后台工作还是与普通脚本同步?