Рестарт по расписанию
-
возможно тема заезженная, но все же: как грамотно/корректно, принудительно рестартить потоки?
Сейчас делаю так: раз в N времени шедуллером дергаю батник
@ECHO OFF taskkill /IM FastExecuteScript.exe /f /T timeOut /t 5 /nobreak start FastExecuteScript.exe --silent
вроде все ок, но иконки в трее остаются после taskkill и накапливаются :)
-
@Sevenup В самой логике скрипта создать условие, для перезапуска. При выполнении которого запускается батник:
@ECHO OFF sleep 60 start FastExecuteScript.exe --silent
а следом экшен прервать скрипт с галкой "Завершить скрипт мгновенно".
-
Хотя завершённый скрипт всё равно будет висеть в процессах.. хмм..
-
@Fox said in Рестарт по расписанию:
Хотя завершённый скрипт всё равно будет висеть в процессах.. хмм..
да, в том то и дело, я уже и так и так эксперементировал. Отдельно убить процесс по ПИДу можно было бы, но в БАСе нет возможности пид воркера получить. Потому приходится вот так жестоко килять все и запускать заново :(
-
Скрипт запущенный с параметром silent будет завершаться полностью.
У меня это так работает. 4 раза в день по расписанию запускается скрипт и после завершения работы никаких окон не остается.
-
я в общем не нашел иного решения как: написал програмулину, которая висит в процессах на каждом из инстансов с БАСом, по pub/sub получает мессаджи мол что ей нужно сделать, например прилетел мессадж "restart" тогда она киляет FastExecuteScript.exe и все его дочерные процессы, т.е воркеры, а потом снова запускает в режиме silent. При запуске проект лезет на сервер и получает например уже новое к-во потоков с которым ему нужно запуститься. Таким жестоким образом можно даже удаленно менять к-во потоков на каждом инстансе :)
а может ли кто простыми словами объяснить разницу между запуском FastExecuteScript.exe и RemoteExecuteScript.exe? Собственно в 2м случае происходит а проверка на обновление движка и при необходимости повторная компиляция проекта?