Как передавать в проект данные извне?

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8
В настройках проекта в поле "Сколько делать", указываю допустим 10.
Можно ли эту цифру 10 передать в сам проект?
Затем когда проект выполнится и число 10 уменьшиться на единицу, для следующего выполнения этого проекта передать в него уже число 9 и т.д.
Т.е. это будет что-то вроде счётчика, только запускаемого извне.

109701


Я подумал, возможно это можно как-то сделать через Переменные окружения, но ни на форуме, не в документации ничего не нашёл для того чтобы реализовать задуманное. Есть ли вообще в ZennoPoster возможность реализовать задуманное.
 

Ахилес

Client
Read only
Регистрация
11.11.2020
Сообщения
955
Благодарностей
388
Баллы
63
нельзя.
вопрос на встречу, представим что можно, а что получит проект который работает в 100 потоков ?
 
  • Спасибо
Реакции: FCKDSH

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8
нельзя.
вопрос на встречу, представим что можно, а что получит проект который работает в 100 потоков ?
В каждом потоке вероятно своя среда выполнения и свои переменные окружения. Поэтому для каждого потока свой отсчёт.
 

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8
Жаль конечно что нельзя. Придётся тогда внутри проект делать глобальный цикл со встроенным счётчиком.
Спасибо что прояснили этот момент. Вопросов больше нет.
 

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 678
Благодарностей
929
Баллы
113
Жаль конечно что нельзя. Придётся тогда внутри проект делать глобальный цикл со встроенным счётчиком.
Спасибо что прояснили этот момент. Вопросов больше нет.
вы логикой управлят.

например - во входящих указываем, что надо сделать 100 выполнений.

при запуске шаб первым делом проверяет файл - если нет - значит надо 100 выполнений (если есть проверяем кол-во строк в нем. если = 100, то закончили, если меньше - стартуем выполнения в нужное кол-во потоков).

При успешном окончании - добавляем строку в файл. как то так..


вообще раз можно установить кол-во выполнений, то можно и получить эту инфу... попробуйте тут копнуть https://zennolab.com/discussion/threads/upravlenie-shablonom-c.54713/
 
  • Спасибо
Реакции: FCKDSH

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 077
Благодарностей
562
Баллы
113
Ну цифру кол-ва выполнений получить не проблема
C#:
            var list = ZennoPoster.TasksList;

            string pattern = @"(?<=<Name>).*(?=</Name>)";
            string pattern2 = @"(?<=<LastNumberOfTries>).*(?=</LastNumberOfTries>)";



            foreach (var her in list)
            {
                Match m = Regex.Match(her, pattern, RegexOptions.IgnoreCase);
                project.SendInfoToLog(m.Value);
                m = Regex.Match(her, pattern2, RegexOptions.IgnoreCase);
                project.SendInfoToLog(m.Value);
            }
 
  • Спасибо
Реакции: eee и FCKDSH

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 077
Благодарностей
562
Баллы
113
Ну цифру кол-ва выполнений получить не проблема
C#:
            var list = ZennoPoster.TasksList;

            string pattern = @"(?<=<Name>).*(?=</Name>)";
            string pattern2 = @"(?<=<LastNumberOfTries>).*(?=</LastNumberOfTries>)";



            foreach (var her in list)
            {
                Match m = Regex.Match(her, pattern, RegexOptions.IgnoreCase); // получаем имя проекта
                project.SendInfoToLog(m.Value);
                m = Regex.Match(her, pattern2, RegexOptions.IgnoreCase); // получаем количество повторов проекта
                project.SendInfoToLog(m.Value);
            }
C#:
ZennoPoster.AddTries("Имя проект", 100); // 100 это сколько повторов
 
  • Спасибо
Реакции: FCKDSH

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8
Ну цифру кол-ва выполнений получить не проблема
C#:
            var list = ZennoPoster.TasksList;

            string pattern = @"(?<=<Name>).*(?=</Name>)";
            string pattern2 = @"(?<=<LastNumberOfTries>).*(?=</LastNumberOfTries>)";



            foreach (var her in list)
            {
                Match m = Regex.Match(her, pattern, RegexOptions.IgnoreCase);
                project.SendInfoToLog(m.Value);
                m = Regex.Match(her, pattern2, RegexOptions.IgnoreCase);
                project.SendInfoToLog(m.Value);
            }
Я не сильно разбираюсь в C#. Я правильно понял, что мы здесь выводим в консоль номер текущего выполнения скрипта project.SendInfoToLog(m.Value);

А если я захочу сохранить это значение в переменную мне нужно эту строку заменить на следующую:
project.Variables["IterationNumber"].Value = m.Value ??

И не совсем понял почему два паттерна у нас ( pattern и patter2)?

UPD. Чутка напряг извилину. Если я правильно понял, первый паттерн выводит название выполняемого проекта.
А вот второй паттерн по нему мы уже находим текущий номер повтора проекта (то что мне нужно), я правильно понял?
 
Последнее редактирование:

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 077
Благодарностей
562
Баллы
113
C#:
            var list = ZennoPoster.TasksList; //Получаем список со всеми проектами в ЗП

            string pattern = @"(?<=<Name>).*(?=</Name>)"; // Регулярка на получание имя проекта
            string pattern2 = @"(?<=<LastNumberOfTries>).*(?=</LastNumberOfTries>)"; //Регулярка на получение количества выполнений проекта



            foreach (var her in list) //Перебираем список с проектами ЗП
            {
                Match m = Regex.Match(her, pattern, RegexOptions.IgnoreCase); //Получаем имя проекта
                project.SendInfoToLog(m.Value); //Выводим в лог имя проекта
                m = Regex.Match(her, pattern2, RegexOptions.IgnoreCase); //Получаем количество повторов проекта
                project.SendInfoToLog(m.Value);//Выводим в лог количество повторов
            }
В целом вы сами можете поковыряться со списком проектов
var list = ZennoPoster.TasksList
Здесь мы помещаем в список все данные обо всех проектах которые добавлены в зенопостер, моежете поизучать какие данные там есть и выбрать те которые нужны
 
  • Спасибо
Реакции: Bas и FCKDSH

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 077
Благодарностей
562
Баллы
113
Я не сильно разбираюсь в C#. Я правильно понял, что мы здесь выводим в консоль номер текущего выполнения скрипта project.SendInfoToLog(m.Value);

А если я захочу сохранить это значение в переменную мне нужно эту строку заменить на следующую:
project.Variables["IterationNumber"].Value = m.Value ??
И то и другое да
 
  • Спасибо
Реакции: FCKDSH

FCKDSH

Пользователь
Регистрация
11.07.2023
Сообщения
43
Благодарностей
8
Баллы
8
C#:
            var list = ZennoPoster.TasksList; //Получаем список со всеми проектами в ЗП

            string pattern = @"(?<=<Name>).*(?=</Name>)"; // Регулярка на получание имя проекта
            string pattern2 = @"(?<=<LastNumberOfTries>).*(?=</LastNumberOfTries>)"; //Регулярка на получение количества выполнений проекта



            foreach (var her in list) //Перебираем список с проектами ЗП
            {
                Match m = Regex.Match(her, pattern, RegexOptions.IgnoreCase); //Получаем имя проекта
                project.SendInfoToLog(m.Value); //Выводим в лог имя проекта
                m = Regex.Match(her, pattern2, RegexOptions.IgnoreCase); //Получаем количество повторов проекта
                project.SendInfoToLog(m.Value);//Выводим в лог количество повторов
            }
В целом вы сами можете поковыряться со списком проектов
var list = ZennoPoster.TasksList
Здесь мы помещаем в список все данные обо всех проектах которые добавлены в зенопостер, моежете поизучать какие данные там есть и выбрать те которые нужны
Отличный ответ. Респект от души:ay:.
Это то, что мне нужно было. Сейчас попробую поэкспериментировать...
 
  • Спасибо
Реакции: Sherminator

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