删除laravel调度任务

时间:2017-11-27 06:47:32

标签: php laravel command scheduled-tasks

我使用laravel的命令和任务调度来检查共享的在线3D打印机的状态。我使用下面的代码启动调度任务,每10分钟检查一次设备状态。但是我想在打印机脱机时删除调度任务。

$schedule->command(DeviceCheckCommand::class, ['--force'])->everyTenMinutes();

我已完全阅读laravel doc Task Scheduling,但我找不到有关如何删除计划任务的任何信息。

1 个答案:

答案 0 :(得分:3)

最好在文件或数据库中保存打印机的状态,并在执行另一个命令之前检查状态:

在DeviceCheckCommand.php内部:

public function handle()
{
    // Your code

    if ($printerStatus == 'Offline') {
        Storage::put('PrinterIsOffline.info', 'Yes');
    } else {
       Storage::delete('PrinterIsOffline.info');
    }
}

在Kernel.php中:

protected function schedule(Schedule $schedule)
{
    if (!Storage::exists('PrinterIsOffline.info')) {
        $schedule->command(DeviceCheckCommand::class, ['--force'])->everyTenMinutes();
    }
}