Процесс Python, запущенный IIS, останавливается через некоторое время - PullRequest
0 голосов
/ 26 августа 2018

Я написал 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))

Каждый ввод оценен, спасибо!

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Решение нашел сам:

IIS -> выберите сервер -> Пул приложений по умолчанию -> Расширенные настройки -> установите для 0 значение «Время простоя» и «обычный интервал времени»

0 голосов
/ 26 августа 2018

Вероятно, это связано с max-execute-time - максимальное время в секундах, в течение которого скрипту разрешается запускаться до его завершения.

Вы можете изменить это свойство, отредактировав php.ini или вызвав set-time-limit

...