Laravel作业和队列未按预期工作



我正在创建一个生成视频的应用程序。这是一个相当密集的函数,需要几分钟的时间才能生成。所以我想为此创建一个异步进程。经过一些研究,我读到了关于拉拉威尔的工作和排队的文章。

但现在我的作业没有被插入到jobs表中。我找不出我做错了什么。

启动作业的我的功能:

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

我的工作

<?php
namespace AppJobs;
use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateFoundationBusDispatchable;
use IlluminateQueueInteractsWithQueue;
use IlluminateQueueSerializesModels;
use Auth;
class GenerateJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public function __construct($dossierId)
{
$this->dossierId = $dossierId;
}
public function handle()
{
sleep(5);
}
}

。ENVQUEUE_DRIVER=database

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

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

经过数小时的调试,我终于找到了问题的解决方案。将->onConnection('database');添加到GenerateJob::dispatch($dossier_id);解决了所有问题。。

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

相关内容

最新更新