Laravel 5.2使用数据库排队

时间:2017-06-15 16:54:06

标签: php laravel laravel-5.2 artisan

我从控制器发送了一份工作,使用

发送欢迎电子邮件
$this->dispatch(new SendWelcomeEmail($user));

SendWelcomeEmail 作业<我执行

public function handle(Mailer $mailer)
{
    $mailer->send('emails.welcome', ['data' => 'data'], function ($m) {
        $m->from('noreply@gmail.com', 'Noreply');
        $m->to('xyz@live.com', 'xyz')->subject('Welcome');
    });
}

我的 .env 文件配置为

QUEUE_DRIVER=database
MAIL_DRIVER=smtp
MAIL_HOST=email-smtp.us-east-1.amazonaws.com
MAIL_PORT=587
MAIL_USERNAME=*access*
MAIL_PASSWORD=*key*
MAIL_ENCRYPTION=tls

检查:

  • 数据库迁移 - &#39;工作&#39;表
  • 使用php artisan queue:listen
  • 在作业调度触发器之前运行队列侦听器

问题:作业已加载到“工作”中。数据库中的表但未处理。但是当我更新队列驱动器时,这个工作完全没问题。

QUEUE_DRIVER=sync

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

你的工作在课堂上有以下特点吗?

use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

并实施:

ShouldQueue