@ila10965

Сервер убивает PHP скрипт по таймауту. Что делать?

Попросили написать довольно сложный "скрипт" на ПХП, а я нефига не бэкэндщик.
Так человек-затычка. Где брешь - там моя плешь.

Ну запилил я его, он должен, просто обязан запускаться по урлу и долго зараза выполняться ( 2-3-4 часа ), но редко.
Однако сервер убивает его исполнение через 10-12 мин, там таймаут какой-то, а менять его низзя.
Сначала все было еще хуже, но я заставил сервер печатать мне отчет о том как там дела переполняя нафиг буфер (только так получалось) и он мне выплевывает строчку в браузере.
Но все равно мрет через 10-12 мин.

А скрипт короче лезет во всякие темные места со своими запросами качает по апи всякую муть, сортирует её бешено во всех позах, а потом неистово отправляет то что получилось в другое место, попутно сохраняет инфу о проделанном ( это не надо было, но так как все цука падало каждые 12 мин, то пришлось искать способы сохранять прогресс, чтоб каждый раз с нуля не начинать ).

Я вообще не бум бум, памагите!

Если можно с простеньким примером где какая-то херня может выполняться очень долго и не дохнуть.
Спасибо!

А да, слова еще всякие, значения которых я не знаю, но они короче присутствуют в этом проекте века:
php 5.6, apache, nginx

И да, это не нехватка памяти, еслишо.
С памятью все ок, это именно таймаут.
  • Вопрос задан
  • 880 просмотров
Решения вопроса 1
Такие - "долго выполняющиеся" скрипты необходимо запускать по крону.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
увеличить таймаут
Ответ написан
dmitriylanets
@dmitriylanets
веб-разработчик
1. функционал разбить на более мелкие задачи,
2. использовать менеджер задач/очередей для выполнения каждой задачи по отдельности.
Ответ написан
Комментировать
Noizefan
@Noizefan
Рекомендую впредь не реализовывать такие массивные скрипты на php, т.к. его идея абсолютно не в жутких демонах.
Серьёзные люди используют под подходящие задачи подходящие языки.
Взгляните в сторону лаконичного Python и ему подобных - учится быстро, особенно после пыха (нет, я про php).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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