Доброго времени суток,
существует программа (работающая) которая исполняет некоторые действия в браузере, окончание работы которой - выключение (гибернация) компа
в виду некоторых (пока всего 1 раз случалось за месяц работы) не объяснимых причин случается косяк с загрузкой приложения.
для защиты от этого, был написан код, проверки состояния (появился уникальный маркер загрузки или нет) - в результате которого после определённого кол-ва попыток, программа записывает в лог файл ошибку - и прекращает свою работу (через Exit)
вопрос: а если попытаться после того как выбило нужное кол-во ошибок - попробовать перезапустить программу - рекурсией?
потенциальные проблемы:
- все переменные которые были изменены к моменту проверки, при перезапуске вызовут обнуление и программа начнётся с самого начала - можно ли этого избежать?
- что произойдёт когда рекурсия закончит (допустим удачное) исполнение скрипта? учитывая что удачное завершение работы - это отключение компа, не окажется ли что после перезагрузки/включения компа, скрипт продолжил исполнение работы со след. строки 1го запуска - обнаружен фейл "проверки состояния" и если за ним оставить EXIT - то окажется что только что запущенный комп будет снова выключен.
- можно ли как-нибудь прекратить исполнение не только рекурсии (допустим по успешному окончанию), но и 1го (начального/оригинального) запуска программы? как например ExitLoop с указанием кол-ва уровней выхода из цикла
мысль:
- пока пришёл к мысли, что можно завести ещё 1 (например txt) файл, в который записывать маркер "запущена рекурсия" - 1.
в таком случае имея этот файл например в режиме апдейта - то добавление маркера ("1") внутри 1го запуска - и при новой инициализации ИЗ рекурсии - в таком лог файле УЖЕ будет храниться "1" что скажет - мы в рекурсии.
поделитесь опытом если кто сталкивался с подобными ситуациями...
заранее спасибо...
существует программа (работающая) которая исполняет некоторые действия в браузере, окончание работы которой - выключение (гибернация) компа
в виду некоторых (пока всего 1 раз случалось за месяц работы) не объяснимых причин случается косяк с загрузкой приложения.
для защиты от этого, был написан код, проверки состояния (появился уникальный маркер загрузки или нет) - в результате которого после определённого кол-ва попыток, программа записывает в лог файл ошибку - и прекращает свою работу (через Exit)
вопрос: а если попытаться после того как выбило нужное кол-во ошибок - попробовать перезапустить программу - рекурсией?
потенциальные проблемы:
- все переменные которые были изменены к моменту проверки, при перезапуске вызовут обнуление и программа начнётся с самого начала - можно ли этого избежать?
- что произойдёт когда рекурсия закончит (допустим удачное) исполнение скрипта? учитывая что удачное завершение работы - это отключение компа, не окажется ли что после перезагрузки/включения компа, скрипт продолжил исполнение работы со след. строки 1го запуска - обнаружен фейл "проверки состояния" и если за ним оставить EXIT - то окажется что только что запущенный комп будет снова выключен.
- можно ли как-нибудь прекратить исполнение не только рекурсии (допустим по успешному окончанию), но и 1го (начального/оригинального) запуска программы? как например ExitLoop с указанием кол-ва уровней выхода из цикла
мысль:
- пока пришёл к мысли, что можно завести ещё 1 (например txt) файл, в который записывать маркер "запущена рекурсия" - 1.
в таком случае имея этот файл например в режиме апдейта - то добавление маркера ("1") внутри 1го запуска - и при новой инициализации ИЗ рекурсии - в таком лог файле УЖЕ будет храниться "1" что скажет - мы в рекурсии.
поделитесь опытом если кто сталкивался с подобными ситуациями...
заранее спасибо...