@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% и сайт перестаёт работать.
Подскажите пожалуйста, как можно решить проблему?
  • Вопрос задан
  • 153 просмотра
Пригласить эксперта
Ответы на вопрос 2
JhaoDa
@JhaoDa
LaravelRUS Team
1. У ларавел нет никакого особого планировщика, используется cron.
2. Ты каждую минуту запускаешь неизвестно что делающие задания. Может, ты там триллион знаков числа Пи считаешь.
3. Провидцев и предсказателей тут нет.

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

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

Войти через центр авторизации
Похожие вопросы