Laravel 4 发送大量电子邮件-超时异常

Laravel 4 发送大量电子邮件-超时异常,laravel-4,queue,Laravel 4,Queue,我正在尝试发送多封带有队列的电子邮件(beanstalkd)。我的应用程序发送了一些电子邮件,然后我收到超时异常 foreach ($emails as $e) { Mail::queue('emails.invite', ["username" => Auth::user()->username, "grupa" => $naziv, "id" => $id, "email" => $e], function($message) use (

我正在尝试发送多封带有队列的电子邮件(beanstalkd)。我的应用程序发送了一些电子邮件,然后我收到超时异常

    foreach ($emails as $e) {
        Mail::queue('emails.invite', ["username" => Auth::user()->username, "grupa" => $naziv, "id" => $id, "email" => $e], function($message) use ($e){        
            $message->to($e)->subject("Pridruži nam se!");
        });
    }
是否有办法将所有电子邮件放入队列,以便在系统可用时发送电子邮件

编辑:超时异常的完整消息:

{"error":{"type":"Symfony\\Component\\Debug\\Exception\\FatalErrorException","message":"Maximum execution time of 30 seconds exceeded","file":"\/home\/forge\/default\/vendor\/nikic\/php-parser\/lib\/PHPParser\/NodeAbstract.php","line":110}}

你是怎么做到的?如果您使用的是beanstalk(或任何队列),那么您正在从应用程序(生产者,发送到队列)和工作进程(使用队列中的数据并发送电子邮件)中执行操作

制作人只是把邮件放到豆茎里,很简单

使用者应该是一个长时间运行的进程,应该从cli执行,没有最长的执行时间(您必须调整php cli的php.ini)。在循环中,您应该检查队列中是否有新的内容并发送电子邮件


基本上,听起来您的问题在于消费者部分设置了最大执行时间,因此它不能在X秒后的while循环中消费电子邮件。调整并确保没有限制。

请发布您得到的确切异常。@Bogdan我编辑了我的问题,并包含了完整的错误消息是的,我正在使用beanstalk。使用队列发送电子邮件应该不会花费太长时间。如果进程是长时间运行的进程(比如说有一段时间(true)),那么30秒后它就会崩溃,当然。。。你的消费者是怎么写的?谢谢你的帮助,我开始使用MailChimp来写这个,它工作正常。