Запуск шаблона после аварийного завершения ZennoPoster (как?)

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
229
Благодарностей
203
Баллы
43
Приветствую.
В своих шаблонах на ZennoPoster использую базу данных MySQL.
Есть шаблон, который работает в многопотоке с пачкой аккаунтов из БД.
Когда шаблон работает с каким-то аккаунтом, то аккаунту в БД присваивается статус "busy" (не в работе статус "free").
Редко, но бывает так, что ZennoPoster вылетает.
Соответственно все аккаунты, с которыми он работал до вылета, в БД остаются со статусом "busy", а нужно, чтобы они возвращались в статус "free".
На рабочей станции стоит скрипт, который каждые 10 минут проверяет, запущен ли ZennoPoster, если нет - запускает его.

Как вариант решения проблемы, рассматривал возможность запуска небольшого шаблона, который бы всем аккаунтам в БД со статусом "busy", присваивал статус "free". Но как запускать этот шаблон лишь один раз и лишь только при запуске ZennoPoster?

Быть может кто-нибудь подскажет другой вариант решения моей проблемы?
Заранее спасибо за рекомендации.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
ставь метку времени , когда проставляешь busy . в шаблоне чистильщике поставь уставку таймаута. например 1 час. если метка busy висит на аккаунте больше уставки, то присваивай статус free. ну и поставь запуск чистильщика каждый час. не помешает, так как кроме падения зенки может и поток завершиться не по плану, а BadEnd не всегда срабатывает.
 
  • Спасибо
Реакции: Jeronimo

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
229
Благодарностей
203
Баллы
43
ставь метку времени , когда проставляешь busy . в шаблоне чистильщике поставь уставку таймаута. например 1 час. если метка busy висит на аккаунте больше уставки, то присваивай статус free. ну и поставь запуск чистильщика каждый час. не помешает, так как кроме падения зенки может и поток завершиться не по плану, а BadEnd не всегда срабатывает.
К сожалению, не подойдёт такой вариант, поскольку аккаунт в этот период времени (час) может запускаться несколько раз. Т.е. порядок и временной интервал работы с акками очень разный.
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 385
Баллы
113
Как вариант решения проблемы, рассматривал возможность запуска небольшого шаблона, который бы всем аккаунтам в БД со статусом "busy", присваивал статус "free". Но как запускать этот шаблон лишь один раз и лишь только при запуске ZennoPoster?
в этом маленьком шаблончике должен быть еще батник, запускающий основной шаблон. То есть, не запускать основной шаблон при включении зенки, а пусть малыш поправит базу и сам запустит все, как было. Тогда он отработает один раз
 
  • Спасибо
Реакции: Jeronimo

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
229
Благодарностей
203
Баллы
43
в этом маленьком шаблончике должен быть еще батник, запускающий основной шаблон. То есть, не запускать основной шаблон при включении зенки, а пусть малыш поправит базу и сам запустит все, как было. Тогда он отработает один раз
Хороший вариант, но после "автозапуска", ZennoPoster автоматически продолжает выполнять те шаблоны, который были запущены до его вылета.
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 021
Благодарностей
1 385
Баллы
113
значит, малыш должен остановить все шаблоны, которые мешают ему сделать правки в базе, а потом запустить их снова. Пусть даже это будет цепочка малышей на костылях: один отключил все потоки, второй правит базы и запускает шаблоны.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
К сожалению, не подойдёт такой вариант, поскольку аккаунт в этот период времени (час) может запускаться несколько раз. Т.е. порядок и временной интервал работы с акками очень разный.
не уловил почему не подходит. это же аварийная ситуация. так сказать на всякий случай. штатно все метки, в том числе и даташтамп , должны убираться в основном шаблоне после окончания работы с аккаунтом. а чистилщик только проверяет зависшие метки на аккаунтах. Если вопрос в том что аккаунт запускается несколько раз в час, так в чем тут проблема ? при каждом запуске даташтамп должен обновляться.если в шаблоне есть долгий цикл работы, можно обновлять на каждой итерации цикла.
у меня так в экселе сделано через даташтамп. вообще никаких проблем уже год как. с экселем там другая проблема. при падении зенки весь файл может слететь. но на БД такого нет. ну а с экселем я решил разнесением данных которые только читаются и которые могут записываться.
 
  • Спасибо
Реакции: Jeronimo

Jeronimo

Client
Регистрация
07.01.2014
Сообщения
229
Благодарностей
203
Баллы
43
не уловил почему не подходит. это же аварийная ситуация. так сказать на всякий случай. штатно все метки, в том числе и даташтамп , должны убираться в основном шаблоне после окончания работы с аккаунтом. а чистилщик только проверяет зависшие метки на аккаунтах. Если вопрос в том что аккаунт запускается несколько раз в час, так в чем тут проблема ? при каждом запуске даташтамп должен обновляться.если в шаблоне есть долгий цикл работы, можно обновлять на каждой итерации цикла.
у меня так в экселе сделано через даташтамп. вообще никаких проблем уже год как. с экселем там другая проблема. при падении зенки весь файл может слететь. но на БД такого нет. ну а с экселем я решил разнесением данных которые только читаются и которые могут записываться.
Изначально не так вас понял.
Благодарю, сделал примерно так, как вы сказали:
1. Сканирую все таблицы из указанной БД на предмет наличия аккаунтов со статусом busy.
2. Добавляю username аккаунтов со статусом busy в список.
3. Беру из БД время и дату последнего запуска аккаунта по username из списка.
4. Беру текущее время и дату.
5. Сравниваю даты и если разница больше заданного в настройках времени, проставляю аккаунту статус free вместо busy.

Шаблон запускаю по расписанию, каждые 30 минут.
 

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