项目场景: 项目使用laravel 搭建了一套计划任务系统。记录一下遇到的问题。 问题描述: 项目中有一些计划任务的执行时间比较长,在执行之前会判断是否已经执行过,如果执行过了,就不会再进行第二次执行,但是有一些任务由于执行时间较长,导致第二次执行到来的时候第一次任务还没有执行完毕,使得第二次执行的判断出现错误,又执行了一次,为结局如上问题,在执行的语句中增加了withoutOverlapping(),解决了如上的问题。但同时也引入了新的问题,withoutOverlapping的机制是,执行一个任务时,会在cash文件夹下建一个文件,但是如果一次任务执行失败了,会导致这个文件不会被删除,那么就会出现任务假死的状态。一切正常,但是程序就是不执行。 问题解决: 解决这个问题也很简单,就是将laravel 中的 storage/framework/cache 文件夹下的数据删除掉即可恢复。