Laravel Расписание без функции перекрытия () не работает с runInBackground () - PullRequest
1 голос
/ 20 февраля 2020

Я пытаюсь настроить расписание для моих команд в /app/Console/Kernel.php и обнаружил, что withoutOverlapping() не работает с runInBackground()

Это работает без перекрытий:

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

Это перекрывает задачи:

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

1 Ответ

0 голосов
/ 21 февраля 2020

В первом случае это работало без перекрытий, потому что команда выполнялась на переднем плане, и планировщик был занят обработкой этой команды, поэтому новая команда не выполнялась до тех пор, пока текущая команда не будет завершена. withoutOverlapping() здесь ничего не повлияло.

Так что проблема заключалась в том, что мьютекс не создается с withoutOverlapping(). Laravel планировщик использует кеш для мьютекса. Переключение драйвера кеша на redis помогло решить эту проблему, теперь withoutOverlapping() работает как надо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...