我正在创建一个生成视频的应用程序。这是一个非常密集的功能,需要几分钟才能生成。所以我想为此创建一个异步进程。经过一些研究,我读到了 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
保持为空,作业同步执行而不是异步执行。我在这里想念什么?