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

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

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

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

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

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

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

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

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

    0_1482998939169_LoopIgnoreErrors.png

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

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

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

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

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

  • 0 Votes
    10 Posts
    1064 Views
  • 0 Votes
    4 Posts
    501 Views
  • 0 Votes
    11 Posts
    1388 Views
  • 0 Votes
    3 Posts
    631 Views
  • 0 Votes
    23 Posts
    9050 Views