Ошибка "Процесс завершен"
-
В проекте установлено действие "Игнорировать ошибки", они игнорируются, но сегодня вылезла ошибка "Процесс завершен" (из-за нехватки памяти), и все потоки завершились. Возможно ли сделать перезапуск упавшего потока, а не завершать все остальные?
-
@blackhacker Архитектура софта такова. Есть основной процесс и дочерние. Если основной завершается, дочерние тоже завершаются. Если завершается дочерний, основной его перезапускает.
-
@support вот в том и дело, что не перезапустил, а выдал такую ошибку) и весь скрипт завершился
Еще сейчас все завершилось с такой ошибкой:
Поток аварийно завершился с сообщением "Таймаут во время выполнения GetLoadStats"Игнорирование ошибок не помогло, хотя весь шаблон стоит в секции "Игнорировать ошибки"
Если нужен исходник, то я его выложил в магазин, и он у меня уже несколько дней тестируется. Поэтому по мере возникновения таких ошибок пишу тут.
-
@blackhacker В скрипте нужно установить количество неудачных использований в большое число.
Тогда при падении процесс будет перезапускаться, и скрипт будет продолжать работу.
-
@support Поставил, сегодня обнаружил такую магию:
Удачно(1)
Сообщения:
1 - OkНеудач(0)
Неудач и восстановлено(45)
Сообщения:
30 - Не удалось загрузить страницу http://error-time.ru/
3 - Не удалось дождаться полной загрузки страницы
2 - Таймаут во время выполнения LoadPage http://error-time.ru/
1 - Таймаут во время выполнения random point[documentRoot, all div, at 116]
1 - Таймаут во время выполнения random point[documentRoot, all a, at 116]
1 - Таймаут во время выполнения random point[documentRoot, all a, at 56]
1 - Таймаут во время выполнения random point[documentRoot, all div, at 97]
1 - Таймаут во время выполнения script for[documentRoot, all .ads-box, at 2]
1 - Таймаут во время выполнения random point[documentRoot, all div, at 48]
1 - Процесс остановлен
1 - Таймаут во время выполнения random point[documentRoot, all div, at 27]
1 - Таймаут во время выполнения random point[documentRoot, all div, at 34]
1 - Таймаут во время выполнения random point[documentRoot, all a, at 40]Время работы : 02:13:51
Последнее сообщение : Удачно
Скрипт сам по себе остановился. Стоит игнор ошибок и количество неудачных выполнений 9999999
До этого тоже бывали такие случайные вылеты. Но иногда и по 2 дня стояло, ничего не вылетало, хотя была гора ошибок в логе.
-
@blackhacker В этот раз скрипт остановился не из-за ошибки, а из-за того, что было успешное выполнение. Тут нужно ставить либо больше успешных, либо сделать так, чтобы основной while никогда не закончился.
-
@blackhacker Ну и неудач и восстановлено, это как раз то, что попало в игнорировать ошибки.
-
@support А как while остановился, если в условии стоит true? Но количество успешных увеличил, спасибо) Сразу не подумал об этом как-то
-
@blackhacker while не остановится, остановится скрипт, когда будут достигнуты успехи либо неудачи, либо закончатся ресурсы
-
@blackhacker Там есть break
-
@support Вроде нет, break только во вложенных циклах For
-
@blackhacker Да, странно, но не критично