Как будет происходить выполнение шаблона вызывающего одним действием разные подшаблоны через project.ExecuteProject

BAZAg

Client
Регистрация
08.11.2015
Сообщения
2 283
Реакции
2 723
Баллы
113
Если я запущу шаблон используя инструкцию project.ExecuteProject.
И для первого потока - запущу шаблон_1.
Для второго потока - шаблон_2.
Для третьего потока - шаблон_3.
Тоесть, для каждого потока я собрался менять path.
Будут ли корректно работать все потоки основного шаблона?
 
  • Увидел
Реакции: Dmitriy_Zenno
Если я запущу шаблон используя инструкцию project.ExecuteProject.
И для первого потока - запущу шаблон_1.
Для второго потока - шаблон_2.
Для третьего потока - шаблон_3.
Тоесть, для каждого потока я собрался менять path.
Будут ли корректно работать все потоки основного шаблона?
Здравствуйте,

Вопросы у вас со звездочкой. :-)

А можете показать, как именно вы используете project.ExecuteProject?
Если получится скинуть демо шаблон, будет супер.
 
  • Оценить
Реакции: BAZAg
Здравствуйте,

Вопросы у вас со звездочкой. :-)

А можете показать, как именно вы используете project.ExecuteProject?
Если получится скинуть демо шаблон, будет супер.
Вот смотрите, пример варианта о котором я говорю.
Переживаю я за то, что это будет мне кушать много ресурсов процессора самой программы Зеннопостер.
В целом я использую этот подход, и все хорошо пока-что.
Но, я ведь не знаю что именно творится под капотом Зеннопостер - из-за чего и задаю такие вопросы, чтобы понять как это работает и иметь возможность подстроиться так, чтобы не мешать Зеннопостеру.

C#:
Развернуть Свернуть Копировать
Random rand = new Random();
string path = Path.Combine(project.Directory, rand.Next(9).ToString() + ".zp"); // здесь пути к разным шаблонам для каждого потока

var dic = new Dictionary<string,string>();
    dic["data"] = "какие-то данные на вход";
string json = Global.ZennoLab.Json.JsonConvert.SerializeObject(dic);
project.Context["json_input"] = json;

bool check = project.ExecuteProject(path, null, true, true, false);
if(!check) throw new Exception("error:" + path);

json = (string)project.Context["json_output"];
var res = Global.ZennoLab.Json.JsonConvert.DeserializeObject<Dictionary<string,string>>(json);
return res["out"]; // какие-то данные на выход
 
  • Увидел
Реакции: Dmitriy_Zenno
Вот смотрите, пример варианта о котором я говорю.
Переживаю я за то, что это будет мне кушать много ресурсов процессора самой программы Зеннопостер.
В целом я использую этот подход, и все хорошо пока-что.
Но, я ведь не знаю что именно творится под капотом Зеннопостер - из-за чего и задаю такие вопросы, чтобы понять как это работает и иметь возможность подстроиться так, чтобы не мешать Зеннопостеру.

C#:
Развернуть Свернуть Копировать
Random rand = new Random();
string path = Path.Combine(project.Directory, rand.Next(9).ToString() + ".zp"); // здесь пути к разным шаблонам для каждого потока

var dic = new Dictionary<string,string>();
    dic["data"] = "какие-то данные на вход";
string json = Global.ZennoLab.Json.JsonConvert.SerializeObject(dic);
project.Context["json_input"] = json;

bool check = project.ExecuteProject(path, null, true, true, false);
if(!check) throw new Exception("error:" + path);

json = (string)project.Context["json_output"];
var res = Global.ZennoLab.Json.JsonConvert.DeserializeObject<Dictionary<string,string>>(json);
return res["out"]; // какие-то данные на выход
Уточню ваш вопрос у разработчиков.
 
  • Оценить
Реакции: BAZAg

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