powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Windows [игнор отключен] [закрыт для гостей] / Ограничение времени работы скрипта
19 сообщений из 19, страница 1 из 1
Ограничение времени работы скрипта
    #37391648
Николай А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть файл xxx.exe, который обычно запрашивается из-под пхп, быстро отрабатывает и закрывается.

Но на днях при таком запуске xxx.exe здорово подвис, завесив всю систему.

Не подскажите, какие решения можно принять, чтобы избежать такого в дальнейшем?
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37391779
Raoul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай А.,

Запусти xxx.exe отдельным потоком и организуй в PHP цикл с помощью sleep, проверяющий, отработал ли exe-шник и убивающий этот процесс, если время превысило нужный тебе таймаут.
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37391834
Фотография С0ВЕСТЬ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В директивах управления php в Apache есть опция, которая отвечает за максимальное время работы скриптов:
Код: plaintext
1.
2.
max_execution_time 
;Устанавливает максимальное время работы скрипта в секундах, до того как он будет остановлен разборщиком. Это предотвращает перегрузку сервера плохо написанными скриптами. Значение по умолчанию  30 . 
На максимальное время выполнения не влияют системные вызовы, функция sleep() etc. Пожалуйста , см . детали в описании функции set_time_limit().
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37391837
Фотография С0ВЕСТЬ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.php.net/manual/en/function.set-time-limit.php] set_time_limit ();
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37391992
bremborg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 С0ВЕСТЬ
Это не вариант, PHP отработает max_execution_time и закроется, а ххх.ехе останется зависшим.

2 Николай А.
Не самое красивое решение, но должно сработать.

Создаёшь файл Terminate.vbs
Именно его вызываешь из своего PHP скрипта.
содержимое:

Код: plaintext
1.
2.
3.
4.
Set WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("C:\xxx.exe")
WScript.Sleep  5000 
WshExec.Terminate

VB Скрипт запустит твой ххх.ехе, даст ему на всё про всё 5000 милисекунд и закроет, неважно успел он там сделать всё что хотел или не успел.
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37392674
Николай А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор2 С0ВЕСТЬ
Это не вариант, PHP отработает max_execution_time и закроется, а ххх.ехе останется зависшим.


Именно так
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37392686
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай А.автор2 С0ВЕСТЬ
Это не вариант, PHP отработает max_execution_time и закроется, а ххх.ехе останется зависшим.


Именно так
По-умолчанию.
Никто (разве что если хостер запретит) не запрещает тебе сказать в начале скрипта "Эй, парни, меня не дропать, я буду работать до победного конца!"
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37392696
Николай А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RaoulНиколай А.,

Запусти xxx.exe отдельным потоком и организуй в PHP цикл с помощью sleep, проверяющий, отработал ли exe-шник и убивающий этот процесс, если время превысило нужный тебе таймаут.

bremborgSet WshShell = CreateObject("WScript.Shell")
Set WshExec = WshShell.Exec("C:\xxx.exe")
WScript.Sleep 5000
WshExec.Terminate


sleep плох тем, что даже когда ххх.exe не виснет, то пхп-скрипт все равно висит назначенное количество секунд, пока не выйдет назначенное sleep время.

... Хотя способ bremborg может подойти, если получится запустить vb-скрипт в фоне.
Правда не знаю как это в пхп сделать.
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37392699
Николай А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonНиколай А.пропущено...


Именно так
По-умолчанию.
Никто (разве что если хостер запретит) не запрещает тебе сказать в начале скрипта "Эй, парни, меня не дропать, я буду работать до победного конца!"

А чем это мне поможет?
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37393342
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ты ж к чему -то написал "Именно так". Значит чем-то мешает?
Я и ответил, что нет, не мешает ни разу и скрипт может выполняться сколько надо.
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37393357
Николай А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonНу ты ж к чему -то написал "Именно так". Значит чем-то мешает?
Я и ответил, что нет, не мешает ни разу и скрипт может выполняться сколько надо.

Мне нужно, чтобы он, наоборот, останавливался когда надо
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37393362
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай А.Edd.DragonНу ты ж к чему -то написал "Именно так". Значит чем-то мешает?
Я и ответил, что нет, не мешает ни разу и скрипт может выполняться сколько надо.

Мне нужно, чтобы он, наоборот, останавливался когда надо
Кто он? Экзешник?
А предложено что было? Контролировать его выполнение из скрипта. Проблема - скрипт может отвалиться по времени. Я и говорю - не проблема, не отвалится, если попростить.

А вообще ковырять надо экзешник и найти все места, в которых он САМ СЕБЯ не проверяет и может зациклиться.
Ну и "подвесил всю систему" - это как? Одноядерный сервер? Значит приоритет запуска надо поменьше, чтобы в случае зацикливания система могла взять на себя одеяло.
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37393391
Николай А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonНиколай А.пропущено...


Мне нужно, чтобы он, наоборот, останавливался когда надо
Кто он? Экзешник?
А предложено что было? Контролировать его выполнение из скрипта. Проблема - скрипт может отвалиться по времени. Я и говорю - не проблема, не отвалится, если попростить.


Об этом вообще вопроса и не стояло. Он по любому не отвалится.

То есть, если max_execution_time = 30. А через exec запустить exe-шник работающий 40 секунд, то пхп все равно не отвалится.
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37393412
bremborg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Николай А.То есть, если max_execution_time = 30. А через exec запустить exe-шник работающий 40 секунд, то пхп все равно не отвалится.

Как работает PHP ? Как CGI или FastCGI ?
CGI - отвалится
FastCGI - не отвалится.

max_execution_time вообще не надо трогать. Если ресурс посещаемый повесит веб сервис как нефиг делать. Просто из за того что в некоторый момент времени все процессы PHP будут заняты ожиданием события max_execution_time и пользователи ресурса будут лицезреть 404 или 502. И неважно сколько там ядер или оперативки.

Edd.Dragon прав, ковырять желательно исходники ххх.ехе
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37393448
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай А.То есть, если max_execution_time = 30. А через exec запустить exe-шник работающий 40 секунд, то пхп все равно не отвалится.
Ты уж определись. Ибо твое "именно так" касалось как раз того, что PHP отвалится. Именно это ты и подтвердил тогда.


авторНу и "подвесил всю систему" - это как? Одноядерный сервер? Значит приоритет запуска надо поменьше, чтобы в случае зацикливания система могла взять на себя одеяло.
Или их там надцать штук запустилось и все повисли? )))))))
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37393457
Николай А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonТы уж определись. Ибо твое "именно так" касалось как раз того, что PHP отвалится. Именно это ты и подтвердил тогда.


Да какая разница, давай прекратим обсуждение этого вопроса
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37393467
Николай А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Edd.DragonИли их там надцать штук запустилось и все повисли? )))))))


Не знаю. Сервер пришлось физически перезапускать.

На пхп не получилось у меня написать запуск скрипта в фоне и потом отключения, если он работает больше 10 секунд. На VB тоже, я его совсем не знаю. Зато получилось на перле, поэтому вроде вопрос решён.

То есть на перле есть скрипт, которые фоном запускает екзешник. Ждёт 10 секунд, не завершился процесс, и убивает его. Делается это с помощью Win32::Process. А в пхп просто вместо екзешника вызывается этот перловый скрипт.


Думаю, если там надцать штук, то это все равно должно помочь.
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37393472
Николай А.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bremborgНиколай А.То есть, если max_execution_time = 30. А через exec запустить exe-шник работающий 40 секунд, то пхп все равно не отвалится.

Как работает PHP ? Как CGI или FastCGI ?
CGI - отвалится
FastCGI - не отвалится.

max_execution_time вообще не надо трогать. Если ресурс посещаемый повесит веб сервис как нефиг делать. Просто из за того что в некоторый момент времени все процессы PHP будут заняты ожиданием события max_execution_time и пользователи ресурса будут лицезреть 404 или 502. И неважно сколько там ядер или оперативки.

Edd.Dragon прав, ковырять желательно исходники ххх.ехе


FastCGI


По поводу "ковырять желательно исходники ххх.ехе". Разве там всё предугадаешь. Файл большой, алгоритм сложный и тем более пишу его не я. А так, при контроле из запускающего скрипта, вроде получается намного надёжней.
...
Рейтинг: 0 / 0
Ограничение времени работы скрипта
    #37394467
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Николай А.По поводу "ковырять желательно исходники ххх.ехе". Разве там всё предугадаешь. Файл большой, алгоритм сложный и тем более пишу его не я. А так, при контроле из запускающего скрипта, вроде получается намного надёжней.
Там не надо все предугадывать, там просто надо писать думаючи. Собственно в саму прогу можно "вплести" контроль времени исполнения себя любимой ))
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Windows [игнор отключен] [закрыт для гостей] / Ограничение времени работы скрипта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]