如何在 Laravel 上同步安排队列作业

几乎就是标题所说的,当我写这个的时候kernel.php

$schedule->job(new Heartbeat)->everyFiveMinutes();

它异步运行代码,无论如何我可以dispatchNow()按计划进行吗?

我正在使用 Laravel 7


莫回无
浏览 121回答 1
1回答

HUX布斯

您可以使用onConnection方法即时设置驱动程序。$schedule->job((new Heartbeat)->onConnection('sync'))->everyFiveMinutes();另一种选择可能是在调用该job方法时,设置connection./** * Add a new job callback event to the schedule. * * @param  object|string  $job * @param  string|null  $queue * @param  string|null  $connection * @return \Illuminate\Console\Scheduling\CallbackEvent */public function job($job, $queue = null, $connection = null){    return $this->call(function () use ($job, $queue, $connection) {        $job = is_string($job) ? Container::getInstance()->make($job) : $job;        if ($job instanceof ShouldQueue) {            $this->dispatchToQueue($job, $queue ?? $job->queue, $connection ?? $job->connection);        } else {            $this->dispatchNow($job);        }    })->name(is_string($job) ? $job : get_class($job));}
打开App,查看更多内容
随时随地看视频慕课网APP