@Anamar

Почему планировщик задач Laravel сильно грузит процессор?

Здравствуйте!
С помощью планировщика задач Laravel (App\Console\Kernel.php) выполняются команды.

protected function schedule(Schedule $schedule)
{
    $schedule->command('Cron --method=clear')->runInBackground()->everyMinute(); 
    $schedule->command('Cron --method=getData')->runInBackground()->everyMinute(); 
    ...
}


Сами команды находятся в App\Console\Commands и запускают методы контроллера.
Проблема в том, что при запуске команд сильно грузится процессор (4 ядра * 3600 MHz) до 100% и сайт перестаёт работать.
Подскажите пожалуйста, как можно решить проблему?
  • Вопрос задан
  • 260 просмотров
Пригласить эксперта
Ответы на вопрос 2
JhaoDa
@JhaoDa
LaravelRUS Team
1. У ларавел нет никакого особого планировщика, используется cron.
2. Ты каждую минуту запускаешь неизвестно что делающие задания. Может, ты там триллион знаков числа Пи считаешь.
3. Провидцев и предсказателей тут нет.

P.S. Команды, запускающие методы контроллера — ужас.
Ответ написан
Комментировать
AmdY
@AmdY
PHP и прочие вебштучки
Посмотрите, насколько тяжела эта задача сама по себе без крона и что она делает. Может там есть какой-то лок ресурсов, базы и т.д.
Само по себе поднятие пхп, парсинг и выполнение скрипта штука довольно ресурсоёмкая. Если это нужно делать каждую минуту, может стоит написать демона со sleep.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы