@zkk777

Как решить проблему с одновременным выполнением скриптов php?

На сервере всего около 6 задач по крону запускаются каждую минуту, задачи не супер тяжелые, на выполнение одной задачи в пик уходит до 2 минут максимум, скрипты парсят информацию с другого источника, проблем в стороннем сервисе не наблюдается, на других сервера и веб-хостингах отдает информацию махом, как будто ограничение какое-то стоит на выполнение задач или еще чего-либо, даже пустой файл php он может грузить по 30 секунд такое чувство что в очереди стоит. Проверял нагрузку она даже до половины не доходит. Как и что нужно проверить чтобы найти проблему?
  • Вопрос задан
  • 357 просмотров
Пригласить эксперта
Ответы на вопрос 1
Daemon23RUS
@Daemon23RUS
Чтобы не запускался скрипт до окончания можно в начало каждого дописать адаптировав под себя
exec("ps -U #user# -u #user# u", $output, $result);
foreach ($output AS $line) if(strpos($line, "you_one_of_six_script.php")) die ......; //прошлое задание еще работает

Еще можно проверять запущен ли скрипт по крону, и выполнять это проверку только на работающий скрипт для крона. Можно писать каждому скрипту временный файл(или в базу) время его запуска(время, чтобы если скрипт крашнулся и не удалил файл, удалить его) , и удалять этот файл по завершении скрипта. А при запуске проверять наличие и выходить если есть файл.
Это поможет в том случае, если причина в в большом количестве запущенных скриптов, которые копятся как снежный ком не успевая отрабатывать.
Ответ написан
Ваш ответ на вопрос

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

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