Вызов одних проектов из других ЗанноПостером

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
Здравствуйте!

Мне хотелось бы вызывать одни проекты из других, я делаю это с помощью ЗенноПостера,
но это не работает наихудшим из возможных способов: то работает, то не работает.

Схема работы такая:
один проект вызывает другие проекты, имена которых записаны в таблице.

То есть:
Проект №1 (Начало) вызывает Проект №2 (Диспетчер),
который Проект №2 (Диспетчер) вызывает другие проекты (№3, №4, №5), имена которых записаны в таблице,
и которые в конце своей работы вызывают Проект №2,
который вызывает следующий проект из списка в таблице.
(Вызываются проекты "файлами-триггерами".)

Если их самому вызывать просто один за другим "руками", то они работают правильно.

Но автоматически это всё то работает, то не работает.


В чём тут может быть дело?

Может, один проект как-то вызывается тогда, в то время, когда ещё не закончен предыдущий проект? и они мешают друг другу?
Я пробовал "задержки" ставить, чтоб точно закончился проект перед вызовом нового, но не помогает.

Вообще, если проект завис, то затем,
после перезагрузки ЗенноПостера, он как-то запускается сам, да?

Тогда вопрос: как "сбросить" все проекты? как остановить все проекты?
как бы сделать так, чтобы ЗенноПостер перезагрузился "программно", без реальной перезагрузки? и чтоб закончить все зависшие проекты?
 
Последнее редактирование:

rostonix

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

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
Эх, а вот прямо вот сейчас, а? Может, есть совет какой-нибудь?
Можно ли так, например:
Диспетчер вызывается каждую минуту, чтоб он (Диспетчер) лез в Таблицу с именами проектов,
и каждый Проект чтоб клал в таблицу информацию о том, выполнился он или или нет?
И Диспетчер вызывает следующий проект в Таблице, ждёт, пока выполнится предыдущий?
Пробовал кто-нибудь так? Может, так будет вернее? Или это - ложный путь?
 
Последнее редактирование:

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
а по окончании 3 4 5 что происходит? каждый создает триггер новый?
 

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
а по окончании 3 4 5 что происходит? каждый создает триггер новый?
Да.


Триггеры в тех проектах, что вызываются Диспетчером (в проектах №3, №4 и т.д.),
в свою очередь вызывают Диспетчер (кроме проекта "END").

То есть,
проект №3, например, вызывает (триггером) опять Диспетчер,
а Диспетчер вызывает №4 (ну или следующий идущий по логике проект),
а чтобы прекратить всю работу, вызывается проект END, который без триггера.


И вся эта последовательность проектов работает,
если их запускать из ЗенноПостера по одному (и перегружая ЗенноПостер).

Но вся эта последовательность проектов не проходит до конца, если запустить её ЗенноПостером.
На середине последовательность или зависает, или работает не так, как в случае проектов, запущенных поодиночке.
 
Последнее редактирование:

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
А вот можно ли как-то "перегружать" ЗенноПостер "программно", из проекта?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Может, один проект как-то вызывается тогда, в то время, когда ещё не закончен предыдущий проект? и они мешают друг другу?
У вас проект 2 по идее вызывается три раза по вашей логике.
вообще в логике ну очень сложно вашей разобраться)
новый билд вот вот выпустим) ну прям вот вот) подождите чутка. там вообще проекты из проектов одним экшеном запускаются
 

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
У вас проект 2 по идее вызывается три раза по вашей логике.
вообще в логике ну очень сложно вашей разобраться)
новый билд вот вот выпустим) ну прям вот вот) подождите чутка. там вообще проекты из проектов одним экшеном запускаются
Возможно так случится, что проблема не уйдёт и в новой версии Зенно, как мне кажется.

Потому что и сейчас моя идея должна работать, но она не работает почему-то,
и это какая-то внутренняя проблема ЗенноПостера, видимо,

поскольку, если только регулярно перезагружать ЗенноПостер, то идея работает
(можно ли всё-таки как-то программно "перезагружать" ЗенноПостер, т.е. как-то "сбрасывать все типа внутренние флаги", а?).


И по крайней мере суть идеи, которую я хочу реализовать, несложная, как мне кажется:
1. есть проекты, имена которых записаны где-то,
2. эти имена надо прочитать и затем запустить проекты с этими именами.

То есть, по сути же всё просто:
один проект (Диспетчер) читает имена (из файла, например) и запускает проекты с этими именами.
А запущенные по своим именам проекты выполняются и в конце своей работы передают управление назад Диспетчеру
(и так может произойти не 3 раза, а в принципе и 1000000 раз).

И вот, если после каждого исполнения вызванного Диспетчером проекта перезагружать ЗенноПостер, то вся схема работает,
но иначе, если не перезагружать так ЗенноПостер, то вся схема (вызов проектов Диспетчером одного за другим) сбивается и не работает.

Можно ли всё-таки как-то "перезагружать" ЗенноПостер так, чтобы не прерывать работы Диспетчера?

ПС
Ага, если вместо перезагрузки ЗенноПостера просто запустить любой ("нулевой") сторонний (не из "задания") проект, то затем схема работает.

Значит, вопрос такой:
можно ли запустить "сторонний" проект (не из "задания") из проекта, который в задании?
 
Последнее редактирование:

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
Почему тут иногда не срабатывает "триггер"? Файл появляется, а проект не запускается?

И - нет, не получается без перезагрузки ЗенноПостера.
Без неё то работает схема - то не работает.
 
Последнее редактирование:

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
я не понимаю как вы это реализовали.
один проект (Диспетчер) читает имена (из файла, например) и запускает проекты с этими именами.
как передают
А запущенные по своим именам проекты выполняются и в конце своей работы передают управление назад Диспетчеру
Можно ли всё-таки как-то "перезагружать" ЗенноПостер так, чтобы не прерывать работы Диспетчера?
нет таких функций
можно ли запустить "сторонний" проект (не из "задания") из проекта, который в задании?
такое будет в след. билде
 

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
я не понимаю как вы это реализовали.

один проект (Диспетчер) читает имена (из файла, например) и запускает проекты с этими именами.
как передают
Да ну как же.

1. Имена проектов записаны в "файле имён" - заранее записаны.
2. Диспетчер
--- читает этот "файл имён" и выбирает среди них одно имя, нужное в данный момент,
--- создаёт по этому выбранному имени нужный "триггер-файл", который и запускает нужный проект.

Идея: написать типа "язык более высокого уровня",
на котором можно написать "последовательность операторов (имён проектов)",
а затем типа "компилировать его" ("интерпретировать" точнее, наверное).

Приблизительный пример файла с именами проектов (операторами) (и параметрами):

1. Прочитать содержимое сайта по адресу Адрес1
2. Преобразовать прочитанное по Алгоритм1


Неужто никто такого не писал никогда?

Или неужто пытались, но не получалось никогда?
 
Последнее редактирование:

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
Блин, или это просто обработка текстов не работает? Может быть вот такое, что просто большие тексты обрабатываются как-то нестабильно?

Типа "зависает" обработка больших текстов - то работает, то не работает... может такое быть?
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 983
Благодарностей
817
Баллы
113
новый билд вот вот выпустим) ну прям вот вот) подождите чутка. там вообще проекты из проектов одним экшеном запускаются
А вызов как будет происходить, примерно как вызов метода в обычной программе, то есть с сохранением текущего профиля, инстанса экземпляра процесса и всего остального контекста (если иное не указано в вызываемом проекте), или просто планировщик или какой-то компонент будет независимо стартовать вызываемый проект в отдельном процессе? Очень хотелось бы именно первый вариант.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
А вызов как будет происходить, примерно как вызов метода в обычной программе, то есть с сохранением текущего профиля, инстанса экземпляра процесса и всего остального контекста (если иное не указано в вызываемом проекте), или просто планировщик или какой-то компонент будет независимо стартовать вызываемый проект в отдельном процессе? Очень хотелось бы именно первый вариант.
Первый вариант
Блин, или это просто обработка текстов не работает? Может быть вот такое, что просто большие тексты обрабатываются как-то нестабильно?

Типа "зависает" обработка больших текстов - то работает, то не работает... может такое быть?
А при чем тут большие тексты если вы о триггерах говорите?
 
  • Спасибо
Реакции: Nick

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
А при чем тут большие тексты если вы о триггерах говорите?
Да, и триггеры иногда не работают (не всегда), и иногда (не всегда) просто проекты зависают, и я думаю, почему это всё происходит.

В целом, главное можно сказать, видимо, так:
если выполнять проекты один за другим (как бы "руками"), то это работает,
если же вызывать проекты один из другого ЗенноПостером, то это не работает.

Вопрос: никто больше не сталкивается с таким эффектом?
 

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
Заработала программа!

Причина неработы:
не всегда работает копирование из таблицы в таблицу (таблица-источник у меня задаётся по адресу файла, в котором она содержится),
я заменил это копирование на "привязать к файлу" таблицу - и заработало.

В упрёк Зенно можно сказать, что это несрабатывание копирования таблиц не "ловилось" Зенно,
а явно поставить обработку этой ошибки я нечаянно не поставил.
И это копирование таблиц то происходило, то не происходило, ломая всю работу.

Спасибо за обсуждение.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
копирование таблицы это что?
как организована была привязка?
 

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
копирование таблицы это что?
как организована была привязка?
Ну как же, есть "экшн" "копировать файл", да?
Этим "экшеном" можно один файл (Эксель-файл, таблица "вне проекта") скопировать в другой файл (тоже Эксель-файл, таблица, но внутри проекта (заданная внутри проекта)).

Это копирование "внешней таблицы" во "внутреннюю" (всегда) работает, когда просто запускаешь проект, "руками",
но не (всегда) работает тогда, когда проект запускается "через" ЗенноПостер.
(Наверное, это - "баг", может быть?)

Эта нерегулярность срабатывания копирования исчезает,
если вместо этого копирования использовать такую возможность среди "операций над таблицами", как "привязать (таблицу) к файлу",

т.е. просто если "привязать" таблицу внутри проекта к файлу, в котором таблица вне проекта, чтобы из неё получить нужные данные.

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

Т.е., это, возможно, я "отловил" "баг", да? проверьте, пожалуйста, если у Вас есть на это ресурсы.
Наверное, никто это так не делает, как я, но, всё-таки, этот мой опыт может получиться кому-то полезным в каких-то обстоятельствах, возможно.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Ээээ
Так не делают. Это неправильно. Подсовывать другой файл на место привязанного к таблице путем его замены
 
  • Спасибо
Реакции: LiteForex

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
Ээээ
Так не делают. Это неправильно. Подсовывать другой файл на место привязанного к таблице путем его замены
Да, наверное так,
я типа "подсовывал другой файл на место привязанного к таблице",
т.е. я типа копировал содержимое "чужого" файла "со стороны" в "свой" файл, привязанный к таблице.

И это работало, хотя и не в ЗенноПостере.

Если так нельзя делать, то, наверное, тогда это надо как-то запретить каким-нибудь явным образом,
ну или хотя бы предупредить типа "Вы вступаете на скользкую дорожку, не упадите ненароком!".

Запишите, пожалуйста, это пожелание в список "пожеланий трудящихся" (типа "Книгу жалоб и предложений", если у Вас есть),
и если кому-то из Вашей команды будет больше нечего делать, то можно будет этим заняться, да?
 
Последнее редактирование:

LiteForex

Пользователь
Регистрация
14.01.2014
Сообщения
48
Благодарностей
0
Баллы
6
Ещё раз большое спасибо за разговор.
 

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