【发布时间】:2017-02-19 18:59:17
【问题描述】:
我从 Laravel 4.1 升级到 5.4。队列迁移很困难。
首先,我注释掉了路由中的iron路由:
Route::post('queue/receive', function()
{
return Queue::marshal();
});
然后,我配置了数据库驱动并迁移了jobs表:
php artisan queue:table
php artisan migrate
我将 Mail::queue 代码更改为 Mailables,如下所示:
Mail::to('person@gmail.com')->send(new ForgotPassword($user->first_name));
我成功同步发送邮件(没有队列)。然后,我切换到队列:
Mail::to('person@gmail.com')->queue(new ForgotPassword($user->first_name));
最后,我从控制台运行这个命令:
php artisan queue:listen
当执行Mail::to 行时,会在Jobs 表中插入一行,但不会发送邮件。我该如何解决这个问题?
注意:ForgotPassword 是 Mailable 类(应该是 Job 类?)。
【问题讨论】:
-
当您跟踪日志
tail -f storage/logs/laravel.log时,您是否看到记录了任何错误? -
Mail::to行没有给出错误。但是php artisan queue:listen命令导致SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column 'attempts'。 -
attempts列的数据类型是什么?你可能想改成更大的,比如BIGINT -
@DanielVerem 它是
Jobstable 的标准列。 -
ForgotPassword应该是Mailable。您的队列正在尝试发送邮件,但由于某种原因它失败了。您可以发布您的ForgotPassword课程吗?此外,是否没有其他日志条目可以解释作业失败的原因?
标签: laravel laravel-5 laravel-queue laravel-mail