我使用Laravel的命令和任务计划来检查共享在线3D打印机的状态。我使用以下代码启动计划任务以每10分钟检查设备状态。但是,我想在打印机偏离线时删除调度任务。
$schedule->command(DeviceCheckCommand::class, ['--force'])->everyTenMinutes();
我已经完全阅读了Laravel Doc任务计划,但是我找不到有关如何删除调度任务的任何信息。
最好将打印机的状态保存在文件或数据库中,并在执行另一个命令之前检查状态:
inceendecheckcommand.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();
}
}