【问题标题】:Laravel Jobs and Queues not working as expectedLaravel 作业和队列未按预期工作
【发布时间】:2020-08-11 15:31:04
【问题描述】:

我正在创建一个生成视频的应用程序。这是一个非常密集的功能,需要几分钟才能生成。所以我想为此创建一个异步进程。经过一些研究,我读到了 Laravel 中的作业和队列。

但是现在我的作业没有插入到jobs 表中。我不知道我做错了什么。

我开始工作的函数:

public function generate() {
    $id = Auth::user()->id;
    GenerateJob::dispatch($id);
}

我的工作

<?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;

use Auth;

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

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

    public function handle()
    {
        sleep(5);
    }
}

.ENV QUEUE_DRIVER=database

我确实运行了php artisan clear:config,但似乎没有任何帮助。

我尝试的任何方法似乎都不起作用。 jobs 表保持为空,作业同步执行而不是异步执行。我在这里错过了什么?

【问题讨论】:

    标签: php laravel laravel-queue laravel-jobs


    【解决方案1】:

    经过数小时的调试,我终于找到了解决问题的方法。将-&gt;onConnection('database'); 添加到GenerateJob::dispatch($dossier_id); 解决了这一切..

    我希望我能说出为什么这是必要的,但我不知道,因为我已经把它放在了我的 .env 文件中。希望这对其他人在这种情况下有所帮助。 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 2020-04-26
      • 2020-11-27
      • 2020-03-07
      相关资源
      最近更新 更多