Laravel 5.6删除代码中的时间表

Laravel 5.6 Delete schedules in the code

我有一个 API 用户创建集成的地方。

这些集成可能会重复出现(每 6 个月重复一次,每 2 天重复一次,等等)。

EX: 然后在 Kernel.php :

$schedule->job(new IntegrateJob, 'integrationId')->cron('* * * * *');

简单...我工作!!!

但是如果用户删除了集成(软删除),那么我不想 运行 在选定的 cron 中执行该作业。

我想在 laravel 调度程序中删除该条目。

但是该信息不会保存在任何地方,不在数据库中,不在缓存中,不在管理作业的 redis 服务器中...

如果找不到它们,我就无法删除它们...有什么解决方案吗?谢谢你

我认为这样做的正确方法是更改​​您的设计,以便为所有用户设置事件 运行,然后确定哪些用户 运行 事件(如果任何)。此外,Laravel 处理计划任务的方式与 Linux 处理 Cron 作业的方式不同。

举个例子:

如果你在app/Console/Kernel.php文件中有如下代码并且运行php artisan schedule:run,作业是运行.

$schedule->job(new IntegrateJob, 'integrationId')->cron('* * * * *');

如果你把上面的代码拿出来运行 php artisan schedule:run一分钟后,作业就不会运行因为Laravel不会持久化作业。