linux 上任务调度无法执行
linux服务器上执行 * php artisan schedule:run 1>> /dev/null 2>&1命令。kernel里面的schedule能够被执行。
但是这个方法里面的command命令不会执行,为什么?我本地windows环境执行php artisan schedule:run
任务调度能够执行一次。
command命令:$schedule->command('push:push')->everyMinute()->withoutOverlapping();
2 条评论
这个问题可能是因为时间不对
主要是用了withoutOverlapping()方法,此方法是为了避免command命令执行时间超过你定义的轮询时间1分钟而导致command命令重复执行。大概过程是这样的,执行command命令前,会加一个锁(防止重复执行),然后在你执行command命令过程中,出现什么问题导致command命令结束了但锁没有释放掉,以后每次轮询执行command命令时,会先去获取锁,而由于锁在第一次执行的时候,没有被释放掉,则以后每次都不会执行command命令的了。