LINUX.ORG.RU
ФорумAdmin

PHP увеличить время работы скрипта

 


0

1

Поставил apache, php и т.п. Но есть проблема, время отдачи страниц, пшп-страница может работать только 30 секунд, допустим у меня там зацикленные отправки мыла написаны, на 1000 сообщений, из них успевает отработать только 428, потом процесс прерывается. Не пойму где увеличить это время для пшп?


В php.ini

max_execution_time 259200

или в .htaccess

<IfModule mod_php5.c>
php_value max_execution_time 259200
</IfModule>
gwinn ★★★★
()
Последнее исправление: gwinn (всего исправлений: 1)

Но есть проблема, время отдачи страниц, пшп-страница может работать только 30 секунд, допустим у меня там зацикленные отправки мыла написаны, на 1000 сообщений, из них успевает отработать только 428, потом процесс прерывается. Не пойму где увеличить это время для пшп?

Не надо говнокодить и осуществлять такие операции в PHP-процессе, который был запущен через HTTP-запрос.

php-cli по умолчанию не ограничен по времени + нужно прикрутить менеджер задач, хотя бы простой. А не тупо все N (N > 1000) записей/объектов перелопачивать сразу.

resurtm ★★★
()
Ответ на: комментарий от resurtm

php-cli по умолчанию не ограничен по времени + нужно прикрутить менеджер задач, хотя бы простой.

Подскажите по такой задаче. Пользователь инициирует на WEB серваке процесс большой длительности (ну, например, конвертация видео).Пользователю не нужно ждать завершения задачи, т. е. задача может выполняться на фоне

Или похожая задача. На WEB-сервере нужно запустить демон, например, чтобы он периодически проверял почту.

И в первой и во второй задаче, юзер через web-клиент инициирует процесс, но процесс должен уйти в фон, и пользователь может о нем забыть.

Доступа по ssh нет, только ftp с возможностью закачивать php (кстати, cgi тоже).

Есть инструменты для того чтобы такое реализовать?

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

имхо я-бы в пхп просто записал-бы в БД «отправить почту», и сделал-бы простенький скрипт, который по крону каждую минуту почту отправляет. Тут надо не забыть сделать состояние «почта отправляется», ибо отправка может затянуться, и тогда другой экземпляр попытается отправить то же письмо второй раз. Этот скрипт(который по крону) я писал на bash'е, но это не важно. Важно, что-бы постоянно работало много скриптов сразу, т.к. основное время тратится на ожидание ответа от MTA.

drBatty ★★
()

Поставил apache, php и т.п. Но есть проблема, время отдачи страниц, пшп-страница может работать только 30 секунд, допустим у меня там зацикленные отправки мыла написаны, на 1000 сообщений, из них успевает отработать только 428, потом процесс прерывается. Не пойму где увеличить это время для пшп?

Во-первых, сама логика работы не правильная. Ставь письма в очередь, как это делают все нормальные люди.

Во-вторых, есть такая директива в php.ini - max_execution_time.

В-третьих, «пшп». К логопеду, быдло.

VirRaa ★★★
()
Ответ на: комментарий от drBatty

... и сделал-бы простенький скрипт, который по крону...

Был бы ssh доступ - не вопрос. А так только по ftp. Поэтому и спрашивал про PHP.

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Был бы ssh доступ - не вопрос. А так только по ftp.

на дешёвых хостингах без ssh обычно есть доступ и к crond. Посмотри в панели. Кроме того, часто есть и ssh, только его особо не рекламируют, что-бы школьники rm -rf не запускали, а потом не ныли. Нужно просто в саппорт отписать, и включат.

drBatty ★★
()
Ответ на: комментарий от zgen

дни юных спамеров на лоре.

ты не поверишь, но рассылки нужны не только спамерам. Они вообще-то всем нужны, кроме фконтактного планктона типа тебя.

drBatty ★★
()
Ответ на: комментарий от drBatty

зацикленные в web скрипте они нафиг не нужны никому, кроме спамеров. Тем более в таком количестве в 1 момент времени.

zgen ★★★★★
()
Ответ на: комментарий от zgen

Тем более в таком количестве в 1 момент времени.

то, что они зациклены в 1 момент времени говорит о том, что ТС не спамер, и это у него не основная задача. Спамер просто скачал-бы готовую спамоотправлялку, уверен, таких полно можно нагуглить.

drBatty ★★
()
Ответ на: комментарий от zgen

Вы таки ошиблись, я всего лишь экспериментирую с php, а не спам-утилиту пишу.

makeB
() автор топика

Пишешь скрипт, который сжимает видео, например если скрипт на пыхе, то вызывать его надо так:

system( "(php video.php $path &) >/dev/null 2>/dev/null" );
А потом в скрипте video.php у тебя время уже неограничено (хотя можно и на баше писать, но мне нужно было в базу мускульную писать)

xorik ★★★★★
()
Последнее исправление: xorik (всего исправлений: 1)
Ответ на: комментарий от Kroz

Юзайте очередь. Загрузил человек файл, создали задачу, отправили в очередь, и пользователю ответили что мол ждите видео конвертится. А уже воркер который будет обрабатывать очередь и будет конвертировать

sqrt_ua
()

допустим у меня там зацикленные отправки мыла написаны, на 1000 сообщений

А потом у тебя оборвётся соединение провайдера и всё начнёшь заново.

Такое — только скриптом на сервере. Если совсем уже никак, левохостинг без шелла, то обработка короткими кусками, несколько секунд на цикл, и редирект на себя же самого, или с параметром смещения в выборке, или, лучше, в БД хранить метку последней отсылки.

KRoN73 ★★★★★
()
Ответ на: комментарий от xorik

так делать не надо. Я везде вырубаю всякие system, popen итд, потому что через них во всякие вордпрессы и прочие движки лезут хакиры. А когда сайтов больше одного искать уязвимости в этих движках и плагинах и исправлять их становится нереально.
Если нужно вызвать шелл, надо использовать соответствующие средства. Иначе начинается говнокод и уныние.

Prius
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.