@burov0798
Пытаюсь изучать php\js

Как реализовать автоматические завершение процесса, который сильно нагружает процессор?

У меня несколько скриптов php , которые нужно дергать каждую минуту, но бывает что скрипт не успевает выполнится, но cron его дергает снова, видимо из за этого произошел такой трабл:
Зашел в пу, а там
mIX4Ow.png
Зашел в htop, там 3 процесса работают уже 7 часов и грузят процессор 4ех ядерный под 100% при этом озу занята 1гб из 7. Я убил эти процессы и нагрузка упала до 13%.
Возможно ли сделать так, что если какой то скрипт генерирует нагрузку более 40-50% на процессор то он автоматически бы завершался?

ps: Я понимаю, что описал вопрос как попало, но вдруг кто поймет) Заранее спасибо!
  • Вопрос задан
  • 359 просмотров
Решения вопроса 2
В идеале должен быть запущен только один инстанс?
Если да, то может стоит задуматься о том, чтобы проверять на выполнение предыдущего, прежде чем запускать новый.
Ответ написан
1. В начале работы скрипта ставите метку в БД, текстовик что работа началась, когда закончил работу то снимает метку
2. Cron запускается, смотрит метку, если метка стоит либо завершается, либо если вы уверены что первый скрипт скоро завершиться делает sleep 5,10,20 - сколько вам надо

Есть ещё вариант когда скрипт с помощью microtime сам следит за временем своего выполнения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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