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

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
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

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

Настраиваем Тригер

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

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

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

После выполнения всех настроек нажимаем на Ок и планировщик приступит к своей работе. После этого Вы уже точно сможете запустить проекты, настроить их выполнение и идти развлекаться.
Данное решение особенно актуально, если программа у Вас работает на сервере и у Вас нет времени или возможности постоянно мониторить что там происходит и работает ли программа.
 
Тема статьи
Другое
Номер конкурса статей
Второй конкурс статей

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

pasha711

Client
Регистрация
26.05.2014
Сообщения
132
Благодарностей
27
Баллы
28
Спасибо Вам, буду изучать
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113
вы потом поделитесь? насколько вы лучше стали спать, тк у многих наших клиентов очень сильно отлегло от сердца когда они начали так запускать Zennoposter
 
  • Спасибо
Реакции: Masik

Nick

Client
Регистрация
22.07.2014
Сообщения
1 975
Благодарностей
799
Баллы
113
Кроме того, проверяется время между последним изменением файла и укзанным в настройках батника. Если прошло установленное время, а файл не изменился, батник убивает зенку в процессах и перезапускает её заново.
Для чего это нужно?
К примеру, батник запустился, проверил, что программа запущена...Но! Бывают такие ситуации, когда в силу неправильной логики шаблона, он может зависнуть, или же просто упадёт инстанс и логика будет крутиться на неудачном выходе, что требует уже стороннего вмешательства, т.е. прервать шаблон, или же перезапустить программу. Для этого Вы можете указать путь к файлу, который обязательно будет изменяться шаблоном при правильном его выполнении и не будет изменяться при возникновении ошибок, батник проверит, что файл не менялся в течении установленного времени и перезапустит программу.
Выглядит как хороший запрос на новую фичу))
 
  • Спасибо
Реакции: spy107 и SHoro

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 552
Благодарностей
993
Баллы
113
За 1.5 года ни разу не падала зенка может стоит проверить комп и убрать разгон?
 
  • Спасибо
Реакции: ZennoScript

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113
За 1.5 года ни разу не падала зенка может стоит проверить комп и убрать разгон?
Когда на серверах грузил сразу много проектов, временами бывало перерасход памяти и вис программы. Так же иногда клиенты спрашивают о таких проблемах. Вот и появилось решение.
Если у Вас не падает, что ж, отлично! Но есть люди, которым это пригодится.
 

Gfoblin

Client
Регистрация
30.05.2013
Сообщения
4 552
Благодарностей
993
Баллы
113
Согласен полностью!
Наверное на впсах или вдсах оно актуально.
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
137
Баллы
43
Работает пока на домашнем компе. И вот, практически каждое утро встаю и удивляюсь - зенка благополучно неработает(просто ночью закрывается), хотя на протяжении дня все нормально, никаких падений.
Думаю решение Websteinlab мне реально поможет. Спасибо.
 

GreenWay

Client
Регистрация
11.05.2012
Сообщения
432
Благодарностей
137
Баллы
43
И действительно, решение Websteinlab ПОМОГЛО!
 
  • Спасибо
Реакции: ZennoScript

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43
Всё отлично работает
 

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43
Случилась такая беда.
Если zennoposter слетел, то планировщик запускает его.
А вот перезапуск из-за изменения файла не срабатывает (
где что не так сделал?
windows 7
 

GHU

Client
Регистрация
31.12.2012
Сообщения
53
Благодарностей
6
Баллы
8
D:\search.log
Че то не пойму что это за файл? Поиском не находится у меня.
 

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43
D:\search.log
Че то не пойму что это за файл? Поиском не находится у меня.
В батнике нужно указать СВОЙ путь к файлу. вместо D:\search.log например D:\ZennoPoster\link.txt
 
  • Спасибо
Реакции: GHU

ZSharp

Client
Регистрация
29.09.2013
Сообщения
387
Благодарностей
121
Баллы
43
@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

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113
@ZennoScript подскажите файл может быть .txt? или нужно обязательно .log
или в чём может быть проблема ещё? Не может ли быть проблема из-за русских папок или из-за глубины влаживаемости файла?
Файл может быть любого расширения. Батник проверяет на дату последнего изменения файла и сравнивает прошол ли после этого указанный промежуток времени.
 
Последнее редактирование:

igzdizain

Client
Регистрация
16.05.2015
Сообщения
495
Благодарностей
15
Баллы
18
чето не работает ваш батник.может я что то неправильно делаю? у меня церез заданный промежуток появляется окно черное и гаснет.так и должно быть? а вот при этом зенно не обновляется все также висит.мой скайп igzdizain может глянете по тимвиверу я уже заколебался с этой задачей
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113
видно что то не так делаете, еще раз внимательно пересмотрите может лишнее чего то где написали, т.к у всех остальных работает
 

igzdizain

Client
Регистрация
16.05.2015
Сообщения
495
Благодарностей
15
Баллы
18
видно что то не так делаете, еще раз внимательно пересмотрите может лишнее чего то где написали, т.к у всех остальных работает
все делаю так.не пойму в чем дело.можете по скайпу помочь делов на 1 минуту много времени не займу буду премного благодарен.просто работа стоит из за этой проблемы скайп igzdizain
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113

igzdizain

Client
Регистрация
16.05.2015
Сообщения
495
Благодарностей
15
Баллы
18

igzdizain

Client
Регистрация
16.05.2015
Сообщения
495
Благодарностей
15
Баллы
18
вы мне поможете? мой скайп igzdizain я вас в понедельник ждал
 

AZANIR

Client
Регистрация
09.06.2014
Сообщения
405
Благодарностей
198
Баллы
43
спасибо тема хороша и работает , только вот непонятно с вот этой строкой.

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

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113
спасибо тема хороша и работает , только вот непонятно с вот этой строкой.

Код:
:: указываем полный путь к файлу, по которому будут проверяться последние изменения
set "file=D:\search.log"
А что тут непонятно?
Вы просто указываете путь к файлу, который необходимо проверять. Это может быть любой файл, с которым работает программа - как рабочие файлы шаблонов, так и логи программы.
Т.е., при запуске, батник будет проверять происходили ли какие то изменения с указанным файлом на протяжении указанного времени. Если нет, значит велика вероятность того, что программа просто висит и следовательно её нужно зарубить и запустить заново.
 
  • Спасибо
Реакции: AZANIR

Budda

Client
Регистрация
13.07.2015
Сообщения
247
Благодарностей
41
Баллы
28
ZennoScript, спасибо Вам еще раз за эту прекрасную фишку!!!)) Вы спасли очень много людей от серьезных нервных срывов)
 
  • Спасибо
Реакции: ZennoScript

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113
Теме уже почти год и за это время достаточно многим людям она помогла.
Рад, что статья не покрылась пылью, а стала полезной форумчанам :-)
 

Budda

Client
Регистрация
13.07.2015
Сообщения
247
Благодарностей
41
Баллы
28
Теме уже почти год и за это время достаточно многим людям она помогла.
Рад, что статья не покрылась пылью, а стала полезной форумчанам :-)
Кстати, еще такой вопрос. Сама программа "планировщик заданий" должна быть открыта для выполнения заданий? Я думал можно настроить, включить и забыть, но вроде нет))
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113
Планировщик заданий не должен быть открыт.
Вы просто настраиваете параметры запуска и всё. Это свойства винды.
После того, как Вы это всё настроили, уже винда следит когда, как и что нужно сделать.
 

nomarketing

Client
Регистрация
01.11.2013
Сообщения
907
Благодарностей
178
Баллы
43
Нда есть идея как заработать но лень :-) а могли бы при желании даже в этой теме :-)
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 883
Баллы
113

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