【发布时间】:2017-02-19 08:44:22
【问题描述】:
问题
我读到每个连接都有队列参数,告诉队列名称。问题是:如何设置发送低、中或高优先级电子邮件的优先级?
Cmd 提示
我正在使用命令:php artisan queue:listen 来处理作业。
我尝试了什么?
php artisan queue:work --queue=high,default
但如果连接的队列参数值不高,此代码将永远无法工作
默认队列驱动程序
'default' => env('QUEUE_DRIVER', 'database'),
队列连接
'connections' => [
'Register' => [
'driver' => 'database',
'table' => 'tbljobs',
'queue' => 'low',
'retry_after' => 5,
],
'ForgotPassword' => [
'driver' => 'database',
'table' => 'tbljobs',
'queue' => 'low',
'retry_after' => 5,
],
],
.env
QUEUE_DRIVER=Register
注册邮箱的控制器代码
$job = (new SendActivationEmail($Data))
->onConnection('Register');
dispatch($job);
重置密码的控制器代码
$job = (new SendResetPasswordEmail($this->tokens->create($user), $user))
->onConnection('ForgotPassword');
dispatch($job);
【问题讨论】:
-
您在作业的处理方法中使用了 $User 变量。你确定它已经定义了吗?
-
是的,我可以确认 User 对象具有价值,并通过在 .env 文件中打印该对象来验证它。
-
您启动队列工作程序了吗?
php artisan queue:work --queue=high -
为了完成这项工作...是否有必要在队列连接列表中...我必须有一个名称为 high 的连接?
-
您的意思是优先级作为 Outlook 中一个漂亮的红色箭头,还是以不同的方式处理队列?
标签: laravel laravel-5.3 laravel-5.4