Работа с Таблицей, как завершить работу шаблона или сколько раз выполнить его

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 100
Благодарностей
129
Баллы
63
Все перемешалось в голове, кони, люди.
Если шаблону нужно каждый час брать из таблицы (10 строк) и выполнять с данными из строки.
Грубо 10 строк таблицы - 10 раз выполнить и так каждый час.
Без разницы, однопоточно или многопоточно, остановится после того как все строки обработает, и так каждый час.
Где настройка сколько раз выполнять каждый час если точное количество строк не всегда известно.
Есть вкладка Остановка-Условие завершения.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 712
Баллы
113

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 100
Благодарностей
129
Баллы
63
только самому анализировать файл и добавлять попыток согласно нужной логике.
В логике незацикленного шаблона не понятно как остановить его после обработки последней строки таблицы.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 712
Баллы
113
В логике незацикленного шаблона не понятно как остановить его после обработки последней строки таблицы.
есть такая проблема. зеннолабовцы обещали что то сделать по этому поводу, но сроков как всегда не назвали :bk:

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

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 100
Благодарностей
129
Баллы
63

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 712
Баллы
113

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 100
Благодарностей
129
Баллы
63
ZennoPoster.AddTries("имя шаблона", 1 ); //добавить 1 попытку шаблону
Нужно ли сначала Запустить?
И какая разница между Задать количество и Добавить?

ZennoPoster.StartTask(projectName); // запустить выполнение задания (проекта)
ZennoPoster.SetTries(projectName, 0); // задать количество выполнений
ZennoPoster.AddTries(projectName, 1); // добавить количество выполнений
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 712
Баллы
113
Нужно ли сначала Запустить?
И какая разница между Задать количество и Добавить?

ZennoPoster.StartTask(projectName); // запустить выполнение задания (проекта)
ZennoPoster.SetTries(projectName, 0); // задать количество выполнений
ZennoPoster.AddTries(projectName, 1); // добавить количество выполнений
ну если шаблон стоит то можно и запустить
я так запускаю
ZennoPoster.StartTask(name_result);
ZennoPoster.SetMaxThreads(name_result, max_count);
ZennoPoster.AddTries(name_result,max_count_add); // добавляем попыткы для инициализации проекта

насчет SetTries и AddTries не знаю. Попробуй , дашь потом знать в чем разница :ay:
 
  • Спасибо
Реакции: bizzon

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 421
Баллы
113
AddTries наплевать, сколько выполнений задано ранее и он просто добавляет указанное количество, когда SetTries в принципе так же наплевать на это и он просто устанавливает указанное количество выполнений.
Предположим, что надо запустить 10 потоков шаблона, но какие-то из них могут завершиться с ошибкой по самым разным причинам. Так вот, в самом шаблоне делаем проверку на успешное выполнение в необходимом месте и при надобности добавляем addtries - 1.
Более наглядный пример:
Каждый час хотим запускать шаблон, который что-то выполняет, в 10 потоков. Допустим, это регистрация аккаунтов какого-то сервиса. Ожидаем 10 зарегистрированных аккаунтов. Шаблон-диспетчер запускается раз в час по расписанию. Внутри у него что-то вроде этого
C#:
ZennoPoster.SetTries("SHAB",10);
ZennoPoster.SetMaxThreads("SHAB", 10);
ZennoPoster.StartTask("SHAB");
а внутри шаблона "SHAB" в том месте, где он завершается, не зарегистрировав аккаунт, просто пишем ZennoPoster.AddTries(Guid.Parse(project.TaskId),1);
Таким образом, шаблон "SHAB" будет перезапускаться до тех пор, пока не выполнится успешно(а успех определяется проверкой внутри "SHAB") указанное количество раз, и мы можем справедливо ожидать каждый час не более и не менее(если при этом не хромает остальная логика) 10 новых аккаунтов.
 
  • Спасибо
Реакции: Sanekk и bizzon

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 100
Благодарностей
129
Баллы
63
Да, спасибо
 
Последнее редактирование:

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 100
Благодарностей
129
Баллы
63
C#:
ZennoPoster.SetTries("SHAB",10);
ZennoPoster.SetMaxThreads("SHAB", 10);
ZennoPoster.StartTask("SHAB");
Не запускает Шаблон под названием SHAB.
Пишет ОК.
Что может быть?
 

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 421
Баллы
113
  • Спасибо
Реакции: bizzon

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 100
Благодарностей
129
Баллы
63

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