Входные настройки

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Обнаружил для себя неприятную вещь. Когда создаешь в ZP несколько заданий, с разными именами, на основе одного шаблонного проекта - нельзя задать разные входные настройки заданиям. Меняешь у одного задания - меняется у всех остальных. При этом, guid у всех разный.
Возможно ли это как то обойти или придется копировать шаблонный проект под другим именем и запускать его?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Не могу подтверджить наличие такой проблемы, так как очень активно использую один шаб с разными настройками. Запишите видео как воспроизводите проблему
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Проверил добавляя вручную - подтверждаю, настройки меняются. Значит проблема в коде.
Использую следующий код, который добавляет в цикле задания, затем производит замену значений входных параметров и импортирует новые параметры:

Код:
var guid = Guid.NewGuid();

var task =
"<Id>"+guid+"</Id>"+
"<Name>"+project.Variables["name"].Value+"</Name>"+
"<CreateTime>01/01/0001 00:00:00</CreateTime>"+
"<ExecutionSettings>    "+
"    <LimitOfThreads>1</LimitOfThreads>"+
"    <MaxAllowOfThreads>0</MaxAllowOfThreads>"+
"    <DoneSuccesfully>0</DoneSuccesfully>"+
"    <DoneAll>0</DoneAll>"+
"    <NumberOfTries>1</NumberOfTries>"+
"    <LastNumberOfTries>0</LastNumberOfTries>"+
"    <Priority>50</Priority>"+
"    <Proxy>DoNotUseProxy</Proxy>"+
"    <Status>Newbie</Status>"+
"    <ProxyLabels></ProxyLabels>"+
"    <ShouldBeExecutedRandomly>False</ShouldBeExecutedRandomly>"+
"    <GroupLabels>"+project.Variables["label"].Value+"</GroupLabels>"+
"    <GroupStates>Выполнены</GroupStates>"+
"    <MaxNumOfSuccesStop>-1</MaxNumOfSuccesStop>"+
"    <MaxNumOfFailStop>-1</MaxNumOfFailStop>"+
"    <NumOfFailStop>0</NumOfFailStop>"+
"</ExecutionSettings>"+
"<SchedulerSettings>"+
"    <StartDate>01/01/0001 00:00:00</StartDate>"+
"    <EndDate>01/01/0001 00:00:00</EndDate>"+
"    <RepetitionCount>1</RepetitionCount>"+
"    <ScheduleType>EveryMinutes</ScheduleType>"+
"    <RepeatType>FinishAfter</RepeatType>"+
"    <ActivateTime>01/01/0001 00:00:00</ActivateTime>"+
"    <ActivateWorkTime>01/01/0001 00:00:00</ActivateWorkTime>"+
"    <IsActive>False</IsActive>"+
"    <NumberOfTries>0</NumberOfTries>"+
"    <Minutes>1</Minutes>"+
"    <Days>1</Days>"+
"    <LastScheduleDate>01/01/0001 00:00:00</LastScheduleDate>"+
"    <IsClearSucces>False</IsClearSucces>"+
"</SchedulerSettings>"+
"<Project>"+
"    <ProjectFileLocation>"+project.Variables["patch"].Value+"</ProjectFileLocation>"+
"    <ProjectType>Assembly</ProjectType>"+
"</Project>";
//Добавляем новую задачу
ZennoPoster.AddTask(task);

//Меняем значения входных параметров
var exportSettings = ZennoPoster.ExportInputSettings(guid);
exportSettings = Regex.Replace(exportSettings, @"projectname", project.Variables["name"].Value);
ZennoPoster.ImportInputSettings(guid, exportSettings);
Значение переменной patch, в данном случае, не меняется - т.е. используется один файл шаблона для всех заданий.

В заданиях, созданных этим кодом, при изменении значения входного параметра в ZP вручную у одного - меняется у всех остальных.
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Дополнительные вводные:
1. При работе цикла, значение переменной exportSettings - не меняется, остается значение, сформированное на первой итерации
2. После создания кодом набора заданий, они все, как бы "привязаны" к одному набору входных параметров, при изменении какого либо параметра у одного задания - у всех остальных значение тоже меняется
3. При добавлении к сформированному списку заданий еще одного, но руками - его входные параметры индивидуальны и не зависят от значений других
4. Значение guid на каждой итерации исправно меняется
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Дальнейшее расследование показало, что виной объединения всех задач в некую "группу" с одними и теми же входными параметрами, является метод AddTask (либо я его неправильно использую). Все задачи, созданные методом AddTask через код, приведенный выше, объединены единственными входными параметрами, которые меняются у всех задач, при изменении значения в любой из них. Повторюсь, что при ручном добавлении такой проблемы нет.
Это бага, фича или мои кривые руки?
 

gigavat

Super Moderator
Регистрация
17.11.2011
Сообщения
112
Благодарностей
88
Баллы
28
  • Спасибо
Реакции: seeport, rostonix и Bullet

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
CreateTime попробуй делать уникальным для каждого таска
Ого, помогло.. Ну кто бы мог подумать. Спасибо!
Текущее время использовать, видимо, не вариант, т.к. в одну и ту же секунду будут созданы несколько тасков. Попробую играть значением года, 9999 должно хватить.
 

seeport

Client
Регистрация
06.02.2017
Сообщения
1
Благодарностей
0
Баллы
1

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 911
Баллы
113

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