在5.5之前的调度程序中调度Laravel作业

问题描述 投票:0回答:1

我已经习惯了Laravel 5.5+,你可以打电话给$schedule->job(new ExampleJob);来解雇工作,这在5.4中是不可用的。我试图做这样的事情:

$schedule->call(function () {
    dispatch(new AppointmentReminder);
})->dailyAt('08:00');

但工作没有解雇。我已经确认这是在正确的时间调用的。我猜dispatch()方法不适用于App\Console\Kernal.php?有谁知道在5.4的调度程序中派遣工作的官方方式?这是一个遗留的代码库,所有的工作都在Kernal.php内联,这是一个混乱。更不用说这是一项相当复杂的工作。

我确实在use Illuminate\Foundation\Bus\DispatchesJobs;尝试了use DispatchesJobs; / $this->dispatch(new AppointmentReminder());然后Kernal.php,但这似乎也没有做到这一点。此外,(new AppointmentReminder())->dispatch();不起作用。谢谢!

php laravel laravel-5 cron laravel-5.4
1个回答
1
投票

您可以创建一个新的控制台命令:

php artisan make:command CommandName

将其添加到App \ Console \ Kernel.php:

protected $commands = [
Commands\CommandName::class,      
];

让你安排打电话给它:

$schedule->command('CommandName')->dailyAt('08:00');

并在“句柄”功能中执行命令,调度作业。

© www.soinside.com 2019 - 2024. All rights reserved.