流明作业不会被派遣

时间:2020-05-06 09:48:55

标签: laravel queue lumen

我正在开发流明版本5.4 每当模型状态更新时,我正在执行类似(发送电子邮件)的任务。 我在模型观察器中调用了事件,并且侦听器调度了队列。但是我面临的问题是:模型可以很好地更新,但工作不会一直派发。它仅在某个时间发送。我已经记录了每个步骤,并发现有时无法调用作业中的句柄。 我正在运行php artisan队列:工作和大多数工作都被称为。队列驱动程序是数据库。

以下是一些代码段:

public function updated( Model $model ) {

    $dirty = $model->getDirty();

    $keys = array_keys($dirty);

    if(in_array('status', $keys)){
        event(new ModelStatusUpdate($model));
    }
}

<?php


namespace App\Events;

class ModelStatusUpdate
{
    public $model;

    public function __construct($model)
    {
        $this->model= $model;
    }
}

    //In event service provider:
    protected $listen = [
            'App\Events\ModelStatusUpdate' => [
                'App\Listeners\ModelStatusUpdateListener',
            ],
        ];

//In listener
public function handle(ModelStatusUpdate $event)
    {
        try{
            $model= $event->model;

            dispatch((new CallJob($model)));
        }catch (\Exception $exception){
            Log::error(json_encode(['error' =>$exception->getMessage(), 'line' => $exception->getLine(), 'file' => $exception->getFile()]));
        }

    }


    class CallJob extends Job
{
    public $timeout = 50;
    protected $guzzle;

public function __construct($model)
{
    $this->model= $model;
    Log::info("Inside job constructor");
}


public function handle()
{
    Log::info("Inside job handle");

   }
}

0 个答案:

没有答案