3 место Автоматическая реанимация Zennoposter после падения или здравствуй здоровый сон

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 452
Реакции
1 889
Баллы
113
Всем привет!

Многие активные пользователи программы сталкивались с такой проблемой - запустил программу, настроил задачи и пошел отдыхать с мыслями о том, что программа сама всё сделает и утром Вы проснётесь и будете любоваться результатом. Но утром оказывается, что программа поработала час-два и решила, что она тоже хочет отдохнуть и вырубилась. В итоге ночь простоя сервака, прокси, недовольные заказчики или же просто личное расстройство.

Как же быть в этой ситуации?

А решение проблемы достоточно простое.
Для её решения нам понадобится BAT файл с таким содержанием

@echo off

SETLOCAL EnableExtensions
set EXE=ZennoPoster.exe
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
echo Not running
:: Указываем полный путь к файлу Zennoposter.exe
start "" "C:\Program Files (x86)\ZennoLab\ZennoPoster Pro\Progs\ZennoPoster.exe" -screen 0 -clipboard -multiwindow
exit 0
:FOUND
echo Running

:: указываем полный путь к файлу, по которому будут проверяться последние изменения
set "file=D:\search.log"
:: Устанавливаем необходимый интервал в секундах
:: (5 часов = 18000 секунд):
set diff=18000
for %%i in ("%file%") do (
for /f "tokens=1,2" %%j in ("%%~ti") do (
for /f %%l in ('
mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(DateDiff("s","%%j"+Chr(32)+"%%k",now))&Close()"
') do (
:: Проверяем, прошло ли установленное время после последнего изменения файла
if %%l gtr %diff% (
taskkill /f /im "ZennoPoster.exe"
start "" "C:\Program Files (x86)\ZennoLab\ZennoPoster Pro\Progs\ZennoPoster.exe" -screen 0 -clipboard -multiwindow )
)
)
)
exit 0

Что делает этот батник?
Он проверяет - есть ли у нас в активных процессах Zennoposter.exe, если процесс найден, батник завершает своё выполнение, если же его нет, батник запускает программу.
Кроме того, проверяется время между последним изменением файла и укзанным в настройках батника. Если прошло установленное время, а файл не изменился, батник убивает зенку в процессах и перезапускает её заново.
Для чего это нужно?
К примеру, батник запустился, проверил, что программа запущена...Но! Бывают такие ситуации, когда в силу неправильной логики шаблона, он может зависнуть, или же просто упадёт инстанс и логика будет крутиться на неудачном выходе, что требует уже стороннего вмешательства, т.е. прервать шаблон, или же перезапустить программу. Для этого Вы можете указать путь к файлу, который обязательно будет изменяться шаблоном при правильном его выполнении и не будет изменяться при возникновении ошибок, батник проверит, что файл не менялся в течении установленного времени и перезапустит программу.


После того, как мы создали BAT файл, необходим инструмент, который, собственно, будет периодически запускать наш батник. И этим инструментом является стандартный Планировщик заданий, который можно найти по пути Панель управления - Администрирование - Планировщик заданий, или C:\Windows\system32\taskschd.msc

Здесь мы создаём задание
image.jpg
, указываем его имя, описание, выбираем учетную запись, обладающую правами администратори и устанавливаем галку Выполнить с наивысшими правами.

Настраиваем Тригер
image.jpg

Выбираем порядок запуска - ежедневно, в определённые дни недели, дни месяца, настраиваем дополнительные параметры
Отложить на - выбирается время, через которое планировщик запустится в первы раз.
Повторять задачу каждые - выбираем нужные промежуток времени.
В течение - выбираем сколько будет работать планировщик, или же Бесконечно, чтобы он не отключался.
И ставим галку Включено.

Настраиваем Действия
image.jpg

Выбираем запуск программы и указываем путь к созданному батнику.

После выполнения всех настроек нажимаем на Ок и планировщик приступит к своей работе. После этого Вы уже точно сможете запустить проекты, настроить их выполнение и идти развлекаться.
Данное решение особенно актуально, если программа у Вас работает на сервере и у Вас нет времени или возможности постоянно мониторить что там происходит и работает ли программа.
 
Номер конкурса статей
  1. Второй конкурс статей
Тема статьи
  1. Другое
Спасибо Вам, буду изучать
 
вы потом поделитесь? насколько вы лучше стали спать, тк у многих наших клиентов очень сильно отлегло от сердца когда они начали так запускать Zennoposter
 
  • Спасибо
Реакции: Masik
Кроме того, проверяется время между последним изменением файла и укзанным в настройках батника. Если прошло установленное время, а файл не изменился, батник убивает зенку в процессах и перезапускает её заново.
Для чего это нужно?
К примеру, батник запустился, проверил, что программа запущена...Но! Бывают такие ситуации, когда в силу неправильной логики шаблона, он может зависнуть, или же просто упадёт инстанс и логика будет крутиться на неудачном выходе, что требует уже стороннего вмешательства, т.е. прервать шаблон, или же перезапустить программу. Для этого Вы можете указать путь к файлу, который обязательно будет изменяться шаблоном при правильном его выполнении и не будет изменяться при возникновении ошибок, батник проверит, что файл не менялся в течении установленного времени и перезапустит программу.
Выглядит как хороший запрос на новую фичу))
 
  • Спасибо
Реакции: spy107 и SHoro
За 1.5 года ни разу не падала зенка может стоит проверить комп и убрать разгон?
 
  • Спасибо
Реакции: ZennoScript
За 1.5 года ни разу не падала зенка может стоит проверить комп и убрать разгон?
Когда на серверах грузил сразу много проектов, временами бывало перерасход памяти и вис программы. Так же иногда клиенты спрашивают о таких проблемах. Вот и появилось решение.
Если у Вас не падает, что ж, отлично! Но есть люди, которым это пригодится.
 
Согласен полностью!
Наверное на впсах или вдсах оно актуально.
 
Работает пока на домашнем компе. И вот, практически каждое утро встаю и удивляюсь - зенка благополучно неработает(просто ночью закрывается), хотя на протяжении дня все нормально, никаких падений.
Думаю решение Websteinlab мне реально поможет. Спасибо.
 
И действительно, решение Websteinlab ПОМОГЛО!
 
  • Спасибо
Реакции: ZennoScript
Всё отлично работает
 
Случилась такая беда.
Если zennoposter слетел, то планировщик запускает его.
А вот перезапуск из-за изменения файла не срабатывает (
где что не так сделал?
windows 7
 
D:\search.log
Че то не пойму что это за файл? Поиском не находится у меня.
 
D:\search.log
Че то не пойму что это за файл? Поиском не находится у меня.
В батнике нужно указать СВОЙ путь к файлу. вместо D:\search.log например D:\ZennoPoster\link.txt
 
  • Спасибо
Реакции: GHU
@echo off

SETLOCAL EnableExtensions
set EXE=ZennoPoster.exe
FOR /F %%x IN ('tasklist /NH /FI "IMAGENAME eq %EXE%"') DO IF %%x == %EXE% goto FOUND
echo Not running
:: Указываем полный путь к файлу Zennoposter.exe
start "" "C:\Program Files (x86)\ZennoLab\ZennoPoster Pro\Progs\ZennoPoster.exe" -screen 0 -clipboard -multiwindow
exit 0
:FOUND
echo Running

:: указываем полный путь к файлу, по которому будут проверяться последние изменения
set "file=D:\search.log"
:: Устанавливаем необходимый интервал в секундах
:: (5 часов = 18000 секунд):
set diff=18000
for %%i in ("%file%") do (
for /f "tokens=1,2" %%j in ("%%~ti") do (
for /f %%l in ('
mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(DateDiff("s","%%j"+Chr(32)+"%%k",now))&Close()"
') do (
:: Проверяем, прошло ли установленное время после последнего изменения файла
if %%l gtr %diff% (
taskkill /f /im "ZennoPoster.exe"
start "" "C:\Program Files (x86)\ZennoLab\ZennoPoster Pro\Progs\ZennoPoster.exe" -screen 0 -clipboard -multiwindow )
)
)
)
exit 0

@Websteinlab подскажите файл может быть .txt? или нужно обязательно .log
или в чём может быть проблема ещё? Не может ли быть проблема из-за русских папок или из-за глубины влаживаемости файла?
 
@ZennoScript подскажите файл может быть .txt? или нужно обязательно .log
или в чём может быть проблема ещё? Не может ли быть проблема из-за русских папок или из-за глубины влаживаемости файла?

Файл может быть любого расширения. Батник проверяет на дату последнего изменения файла и сравнивает прошол ли после этого указанный промежуток времени.
 
Последнее редактирование:
чето не работает ваш батник.может я что то неправильно делаю? у меня церез заданный промежуток появляется окно черное и гаснет.так и должно быть? а вот при этом зенно не обновляется все также висит.мой скайп igzdizain может глянете по тимвиверу я уже заколебался с этой задачей
 
видно что то не так делаете, еще раз внимательно пересмотрите может лишнее чего то где написали, т.к у всех остальных работает
 
видно что то не так делаете, еще раз внимательно пересмотрите может лишнее чего то где написали, т.к у всех остальных работает
все делаю так.не пойму в чем дело.можете по скайпу помочь делов на 1 минуту много времени не займу буду премного благодарен.просто работа стоит из за этой проблемы скайп igzdizain
 
вы мне поможете? мой скайп igzdizain я вас в понедельник ждал
 
спасибо тема хороша и работает , только вот непонятно с вот этой строкой.

Код:
Развернуть Свернуть Копировать
:: указываем полный путь к файлу, по которому будут проверяться последние изменения
set "file=D:\search.log"
 
спасибо тема хороша и работает , только вот непонятно с вот этой строкой.

Код:
Развернуть Свернуть Копировать
:: указываем полный путь к файлу, по которому будут проверяться последние изменения
set "file=D:\search.log"

А что тут непонятно?
Вы просто указываете путь к файлу, который необходимо проверять. Это может быть любой файл, с которым работает программа - как рабочие файлы шаблонов, так и логи программы.
Т.е., при запуске, батник будет проверять происходили ли какие то изменения с указанным файлом на протяжении указанного времени. Если нет, значит велика вероятность того, что программа просто висит и следовательно её нужно зарубить и запустить заново.
 
  • Спасибо
Реакции: AZANIR
ZennoScript, спасибо Вам еще раз за эту прекрасную фишку!!!)) Вы спасли очень много людей от серьезных нервных срывов)
 
  • Спасибо
Реакции: ZennoScript
Теме уже почти год и за это время достаточно многим людям она помогла.
Рад, что статья не покрылась пылью, а стала полезной форумчанам :)
 
Теме уже почти год и за это время достаточно многим людям она помогла.
Рад, что статья не покрылась пылью, а стала полезной форумчанам :-)
Кстати, еще такой вопрос. Сама программа "планировщик заданий" должна быть открыта для выполнения заданий? Я думал можно настроить, включить и забыть, но вроде нет))
 
Планировщик заданий не должен быть открыт.
Вы просто настраиваете параметры запуска и всё. Это свойства винды.
После того, как Вы это всё настроили, уже винда следит когда, как и что нужно сделать.
 
Нда есть идея как заработать но лень :) а могли бы при желании даже в этой теме :)
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)