我使用laravel的命令和任务调度来检查共享的在线3D打印机的状态。我使用下面的代码启动调度任务,每10分钟检查一次设备状态。但是我想在打印机脱机时删除调度任务。
$schedule->command(DeviceCheckCommand::class, ['--force'])->everyTenMinutes();
我已完全阅读laravel doc Task Scheduling,但我找不到有关如何删除计划任务的任何信息。
答案 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();
}
}