我正在使用laravel 5.0并试图设置发送电子邮件的队列,我已经创建了它并编写了类似的代码。
Queue::pushOn('emails', new SendEmail($user));
它在作业表中添加了一行,然后运行以下命令
$ php artisan queue:listen
但是它没有显示任何内容,也没有发送电子邮件。
答案 0 :(得分:2)
对,我也遇到了同样的问题, 我的工作代码中有一个错误,这就是为什么它被卡在queue:listen中,以确保您的工作代码中没有错误。
您可以将以下检查放入作业handle()中以解决错误。
public function handle()
{
try{
// your code here.
} catch (\Exception $e) {
dd($e->getMessage());
}
}
然后运行。
$ php artisan队列:收听电子邮件
现在,如果您的代码中有错误,该错误将显示在命令行中。 希望对您有所帮助。
答案 1 :(得分:0)
请检查您在config/queue.php
中是否有一个名称为emails
的连接,因为您正在使用方法queue
推送到此pushOn()
。
或者,仅使用以下方式推入默认的queue
:
Queue::push(new SendEmail($user));
答案 2 :(得分:0)
请务必尝试:
config:clear
cache:clear
config:cache
然后:
php artisan queue:listen emails
将在电子邮件队列中侦听作业。