Выполнение команды artisan кроном лучше через очереди реализовать?
В laravel можно настроить выполнение задач по расписанию. В этом случае крон запускает команды, прописанные в файле Kernel.
Сейчас мы заметили что раз в час возрастает сильно нагрузка на сервер.
$schedule->command('priceUpdate')->hourly(); - скорее всего выполняется эта команда.
Как бы сделать так чтоб помягче доставалось серверу и чтоб он не нагружался на 98%?
развернуть Redis и пускать выполнение этой задачи через очереди?
Или создать объект "Очередь", а через shedule запускать команду, которая бы вызывала данную очередь и пускала ее через Redis к примеру?
Как бы сделать так чтоб помягче доставалось серверу и чтоб он не нагружался на 98%?
Кроме оптимизаций запросов/работы команды ни чего не поможет. Каким бы вы сервисом очередей не пользовались, если задача трудоёмкая, то выполняться будет долго и сложно.
ну если долго, это не страшно. можно же как то понизить приоретет этого процесса чтоб он не тратил слишком много процессорного ресурса как в windows? пусть долго выполняется. Например, обновление цен в товарах. Ее нужно запускать каждый час. А товаров более 100 000. И курс доллара ведь тоже прыгает, а значит нужно пересчитывать. меня это интересовало.