Laravel Schedule withoutOverlapping() 不适用于 runInBackground()

Laravel Schedule withoutOverlapping() is not working with runInBackground()

我正在尝试为 /app/Console/Kernel.php 中的命令设置时间表,但发现 withoutOverlapping() 不适用于 runInBackground()

这没有重叠:

$schedule
    ->command('test:update')
    ->withoutOverlapping();

这与任务重叠:

$schedule
    ->command('test:update')
    ->withoutOverlapping()
    ->runInBackground();

在第一种情况下,它在没有重叠的情况下工作,因为命令在前台 运行ning 并且调度程序正忙于处理此命令,因此在当前命令完成之前不会 运行 新命令。 withoutOverlapping() 此处没有任何影响。

所以问题是互斥量不是用 withoutOverlapping() 创建的。 Laravel 调度程序正在使用互斥缓存。将缓存驱动程序切换到 redis 有助于解决此问题,现在 withoutOverlapping() 可以正常工作。