laravel 执行定时任务时出现不执行的问题
在linux服务器中添加了定时任务 * * * * * php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1,
出现不执行的情况,在调试时手动执行了上面的命令行
php /path-to-your-project/artisan schedule:run。
然后界面上显示提示信息 【no scheduled commands are ready to run】。
在尝试后发现是因为定时任务中添加了withoutOverlapping()这个方法,不能重复执行。而在执行过程中强行中断任务,导致的任务锁没有被释放,导致下次不能正常执行。
解决办法是删除 /storage/farmework/chache 文件夹下面的缓存就可以了,如果缓存用的是Redis等,则需要删除其对应的缓存。
备注:
call 函数后面只能带 everyMinutes()才会执行成功,带其他执行命令就会报
No scheduled commands are ready to run。无论线上线下都是这样,有点想不通为什么?