Как работает перезапуск процесса при Reset()?



  • Процесс убивается, или же завершается через WinApi? Если через WinApi, что будет с зависшим процессом? Наблюдаю у себя такую картину:
    0_1482924098556_Безымянный.png
    Все браузеры, отмеченные галочкой, не открылись (наверное процесс завис). Так же памяти мало потребляет, что говорит о том, что скрипт не выполняется. Да и посещения не накручиваются вроде как, если только в пол силы. Запущено 3 экземпляра скрипта по 10 потоков в каждом, только они отображены на панели задач.


  • administrators

    @blackhacker В обычной ситуации, если рабочий процесс упал, то это повлечет падение потока. После это рабочий процесс будет перезапущен.

    Если падение произошло во время блока "Игнорировать ошибки", который находиться в цикле, то процесс не будет перезапущен, постоянно будут вываливаться ошибки, которые будут глушиться действием "Игнорировать ошибки".

    Сейчас это исправлю.

    Процесс убивается, или же завершается через WinApi?

    Процесс не убивается, тут он падает. Работа с процессами идет через обвертку, которая внутри использует вин апи.


  • administrators

    @blackhacker Исправил. http://bablosoft.com/distr/BrowserAutomationStudioDevelopment/16.5.1/BrowserAutomationStudioInstallAllInOne.exe

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

    0_1482998939169_LoopIgnoreErrors.png



  • @support Спасибо!)



  • @support said in Как работает перезапуск процесса при Reset()?:

    Работа с процессами идет через обвертку, которая внутри использует вин апи.

    А если все-таки процесс завис (например при утечке памяти или из-за каких-то ошибок, и память в таком процессе будет дальше и дальше расти и тормозить скрипт), он ведь не завершится через win api? Может, правильнее было бы сделать принудительное завершение по таймауту, если не удалось завершить через win api? Но я не знаю, может, у вас уже так сделано.


  • administrators

    @blackhacker Если произошла ошибка, то это не означает, что процесс нужно убивать. Это бы увеличило нагрузку на процессор. Но вы можете это делать используя действие Сбос с параметром Перезапуск процесса или действия "Открыть браузер"/"Закрыть браузер".


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.