Я написал python
скрипт, который собирает ссылки с данной веб-страницы. Вы можете найти фрагмент кода ниже. (но я думаю, что это не проблема кодирования).
Когда я запускаю скрипт в командной строке (с правами администратора), все работает как положено, но когда я запускаю скрипт из PHP
он просто перестает работать через ~ 30 минут без каких-либо исключений. Для меня это выглядит так, что Windows Server 2016 убивает python
процесс через определенное время (процесс запускается пользователем IIS без прав администратора).
Любые идеи, как сказать Windows / IIS не убивать python
процесс?
Вот как я называю сценарий из PHP
:
$command = 'C:\\Python36\\python.exe C:\\Scripts\\myscript.py ';
pclose(popen("start /B ".$command, "w"));
Я пробовал оба python.exe
а также pythonw.exe
, Сценарий запускается нормально, но останавливается примерно через 30 минут.
def getAllLinksOnCurrentPage():
elems = driver.find_elements_by_xpath("//a[@href]")
for elem in elems:
f = elem.get_attribute("href")
if testurl in f:
if f not in linkcollector:
linkcollector.append(f)
try:
driver.get(testurl)
for currentpage in linkcollector:
driver.get(currentpage)
getAllLinksOnCurrentPage()
#Write all URLs to Logfile
with open('C:\Scripts\Logfiles\\Logfile.txt', "a") as file:
for currentpage in linkcollector:
file.write("\n%s" %currentpage)
except Exception as e:
#Catch Unknown Exception
with open('C:\Scripts\Logfiles\\'+str(testrun)+'_Logfile.txt', "a") as file:
file.write("\n Unknown Exception: " %str(e))
Каждый вклад оценен, спасибо!
Решение нашел сам:
IIS -> выберите сервер -> Пул приложений по умолчанию -> Расширенные настройки -> установите для 0 значение «Время простоя» и «обычный интервал времени»
Это, вероятно, связано с макс-исполнение времени — Максимальное время в секундах, которое разрешено запускать сценарию до его завершения.
Вы можете изменить это свойство, отредактировав php.ini или позвонив установка времени ограничения