Мне интересно, есть ли у кого-нибудь опыт работы с планировщиком заданий Laravel без перекрытия между несколькими серверами.
Чтобы поместить это в контекст: У меня есть 3 сервера API за балансировщиком нагрузки. Я знаю, что планировщик задач допускает использование флага onlyOverlap на одном сервере, но как я могу использовать один и тот же принципал на всех моих серверах? Я хочу, чтобы только 1 сервер выполнял запланированные задачи, а другие 2 сервера не запускали их.
Насколько я могу сказать, мои варианты:
Удалите crontab с 2-х серверов. Я автоматизировал свои серверы и предпочел бы не удалять задание crontab ни с одного из серверов, потому что это усложнит мои автоматические сборки.
Напишите пакет, который использует БД для ограничения задач только первым запущенным сервером.
Я мог бы сделать это, но мне интересно, если это уже было сделано (ничего не могу найти в Google)
Любой совет?
Один парень уже реализовал это. проверить этот пакет композитора
https://packagist.org/packages/jdavidbakr/multi-server-event
Других решений пока нет …