Laravel分派队列始终在中间运行

时间:2019-02-08 11:07:01

标签: laravel queue dispatch

我正在尝试将Laravel中的作业分派到mysql中。如果我愿意

  

dispatch(新的SendBroadcastSMS());

  

SendBroadcastSMS :: dispatch()-> delay(now()-> addMinutes(2));

作业始终处于中间状态。在我的工作中,我设置为睡眠30秒,而当前调用调派的控制器/页面也要等待30秒,然后回显作业返回。为什么?它应该通过工作者在后台运行,对吗?还是我对laravel队列误解了?

我的工作如下:

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class SendBroadcastSMS implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    public function __construct()
    {
    }
    public function handle()
    {
        sleep(30);
        echo "test";
//       dd($this->sendSms("6281517777767","test message"));
        //
    }
}

我的队列驱动程序是数据库mysql,我也没有收到job表中的任何行

  

QUEUE_DRIVER =数据库

1 个答案:

答案 0 :(得分:0)

QUEUE_DRIVER不是您应在.env文件中设置的属性。
正确的属性是QUEUE_CONNECTION

QUEUE_CONNECTION=database