Метод Laravel onOneServer() для разрыва планировщика задач с кешем php artisan: очиститьPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Метод Laravel onOneServer() для разрыва планировщика задач с кешем php artisan: очистить

Сообщение Anonymous »

Мое приложение Laravel работает за балансировщиком нагрузки, и одновременно работают 2 экземпляра EC2. Раньше я управлял cronjob только на одном сервере, но это не идеальный способ, потому что, если нагрузка увеличится или произойдет какая-то необычная ошибка, и если инициализируется третий экземпляр EC2, cronjob запустится и на этом сервере, и мой cronjob выполняет критическую задачу, такую ​​​​как зарядка полосы или срок ее действия. подписки, и если оба сервера выполняют задачу cronjob, пользователь будет взимать плату за полосу несколько раз.
Поэтому, чтобы справиться с этой ситуацией, я реализовал распределенную блокировку с помощью Redis. Я изменил драйвер кэша по умолчанию с файла на redis в файле .env. CACHE_DRIVER=redis и в Console/Kernel.php добавлен такой метод onOneServer.

Код: Выделить всё

$schedule->command('subscription:autorenew')->everyMinute()->withoutOverlapping()->onOneServer();
теперь даже на обоих серверах включен crontab, он выполняет задачу только на одном сервере, но в моем конвейере развертывания есть команда php artisancache:clear из-за этой блокировки снимается даже задача выполняется, и второй сервер также начинает выполнять ту же задачу в то же время.
Есть ли какой-либо встроенный способ laravel, где я могу установить свой CACHE_DRIVER=file по умолчанию и все равно использовать Redis для распределенной блокировки, чтобы php artisan Cache:clear не влиял на блокировку кэша Redis?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -cacheclea
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»