在Laravel 5.2上调试Queue失败的原因

时间:2016-06-28 21:47:41

标签: php laravel-5.2

我正在尝试在Laravel 5.2上发送欢迎电子邮件,但工作失败,我不知道如何找出原因。

这是我到目前为止所做的:

public function test(Request $request) {
    $email = $request->get('email');
    $subject = $this->word('emails.welcome.subject');

    // Mail::send                 # I use this to Send it synchronously
    // $this->mailQueue->queue    # I use this to Queue
    ('emails.welcome', ['domain' => 'blablabla', 'name' => 'Marco Aurélio Deleu', 'date' => Carbon::now(),
    'total' => 100, 'pretext' => '', 'score' => '', 'surtext' => '', 'password' => 'blabla', 'shop' => ''],
        function ($message) use ($email, $subject) {
        $message->to($email);
        $message->subject($subject);
    }, true);
    return 'queued';
}

我注意到,当抛出任何类型的异常时,Jobs很容易失败,所以我想我可以使用Mail::send找出抛出的异常/问题是什么,然后使用{{1当我把它整理出来的时候。

我设法使用这个策略来找出I can't use function calls inside the closure,但现在我不知道还有什么可以做,以找出问题所在。直接发送电子邮件的同步方法工作正常,电子邮件到达,但作业将在队列中失败。

我的最后一个证据是问题出在$this->mailQueue->queue()数组中,因为如果我使用它而没有任何$data,则会处理作业并收到电子邮件。

$data

这是队列侦听器:

...
// If I use it like this, it will work perfectly.
$this->mailQueue->queue
('emails.welcome', [ /* empty array */ ], function ($message) use ($email, $subject) {
        $message->to($email);
        $message->subject($subject);
    }, true);

0 个答案:

没有答案