Входные настройки из таблицы

MaxVM

Пользователь
Регистрация
20.01.2016
Сообщения
34
Благодарностей
2
Баллы
8
Здравствуйте!
Подскажите как реализовать.
Есть проект заполнение сайта, все работает. Одновременно в проект добавляю несколько файлов и запускаю (у меня их 5 по лицензии). Щелкаю два раза на файл и вставляю входные настройки (Ссылку на сайт+путь до файла с исходниками), это сильно не утраивает.
Хотелось бы сделать файлик из которого зенка будет подхватывать входные данные. Прекрастно понимаю что это легко через переменные реализовать. НО я не очень понимаю как сделать чтоб каждый из пяти файлов брал уникальное значение из строк файла (дабы повторов не случилось).
Желательно получить следующую схему.
1. Добавляю в ЗП пять файлов
2. Все файлы замкнуты на один файл с одним именем
3. Как только в файле появляется строчка с данными происходит старт проекта и строчка удаляется
4. Если файл пустой то старта не происходит


Возможно ли?
 

Solus

Client
Регистрация
14.04.2014
Сообщения
378
Благодарностей
120
Баллы
43
MaxVM, не совсем ясно то что вы написали, и я понял следующее:
Одновременно в проект добавляю несколько файлов и запускаю (у меня их 5 по лицензии).
Т.е. вы выполняете шаблон в 5 потоков т.к. у вас их 5 по лицензии.
как сделать чтоб каждый из пяти файлов брал уникальное значение из строк файла (дабы повторов не случилось).
Каждый поток должен брать уникальную строку с данными, из одного, общего для всех потоков, файла.
Верно?
 

MaxVM

Пользователь
Регистрация
20.01.2016
Сообщения
34
Благодарностей
2
Баллы
8
MaxVM, не совсем ясно то что вы написали, и я понял следующее:

Т.е. вы выполняете шаблон в 5 потоков т.к. у вас их 5 по лицензии.

Каждый поток должен брать уникальную строку с данными, из одного, общего для всех потоков, файла.
Верно?
Да, все верно!
Понятно что можно заставить каждый файл отслеживать свою строку в документе, но как сделать чтоб старт происходил именно при появлении строки?
Или возможно решить иначе?
 

Solus

Client
Регистрация
14.04.2014
Сообщения
378
Благодарностей
120
Баллы
43
Если вам нужно чтобы шаблон именно "стартовал" при наличии данных в файле, то вам, думаю поможет "Общий код". Экшн "Директивы using и общий код" http://joxi.ru/KAgKMMJFgkEZGA На сколько я понимаю, тут можно реализовать инициализацию шаблона(C# кодом) при наличии данных(или вообще строк) в определенном файле. Это касательно PM.

Так же есть другой вариант(он проще), но старт шаблона будет происходить непосредственно при появлении файла в указанной директории(папке).
Это "Диспетчер задач" в ZP или ZB.
 

rostonix

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

MaxVM

Пользователь
Регистрация
20.01.2016
Сообщения
34
Благодарностей
2
Баллы
8
Проще завязать на сами файлы, а не на строки
Да я полностью согласен касаемо файлов, но мне важно иметь схему старта попроеще.
Опишу еще раз.
Есть пять лицензий, есть пять файлов (проектов) добавленных в ZP. Хочу получать данные с одного файла (файл имеет вид, столбец 1 - url, столбец 2 - ссылка на csv файл на компе)
Предположим я кинул файл в котором не пять строк с данными а 10-15. Я хочу чтоб каждый из файлов проекта взял первую строку из файла в переменные и удалил ее, и начал выполнять экшены. То есть 5 файлов взяли первые 5 строк (вопрос раз: не получиться так что они "подерутся" из-за данных в файле). После того как один из файлов закончил он смотрит есть ли для него еще работа (в файле с исходными данными), если да то берет строку и удаляет.

Это все крутиться на серваке и он постоянно мониторит папку, скажем дропдокса например. Я могу добовлять и запускать работу не будучи привязаным к месту!

Вот такая идея.

Сорри я просто не знаю как описать чтоб было понятно.
 

Solus

Client
Регистрация
14.04.2014
Сообщения
378
Благодарностей
120
Баллы
43
"Сорри я просто не знаю как описать чтоб было понятно."
Да вроде уже ясно всё
Можно проще сделать. Что сильно плохо если каждый из потоков(файлов) стартует смотрит есть данные в файле или нет? Если есть идет дальше по своей логике, если нет то сразу заканчивает.
Выполнение в проге ставите "-1" а кол-во потоков: сколько вам нужно или сколько возможно.
 

MaxVM

Пользователь
Регистрация
20.01.2016
Сообщения
34
Благодарностей
2
Баллы
8
"Сорри я просто не знаю как описать чтоб было понятно."
Да вроде уже ясно всё
Можно проще сделать. Что сильно плохо если каждый из потоков(файлов) стартует смотрит есть данные в файле или нет? Если есть идет дальше по своей логике, если нет то сразу заканчивает.
Выполнение в проге ставите "-1" а кол-во потоков: сколько вам нужно или сколько возможно.
Может не очень Вас понял, но при данной схеме мне буде нужно создавать файл с исходными данными вида - в одном файле одни данные. Но мне нужно закидывать их списком т.к. количество может быть большим.
 

Solus

Client
Регистрация
14.04.2014
Сообщения
378
Благодарностей
120
Баллы
43
1. В шаблоне(ах), указан путь к одному и тому же файлу(в данном случае к csv таблице) в начале логики шаблона получаете количество строк этой таблицы, дале делаете логику(экшн if) и проверяете есть ли строки в таблице или нет. Если есть, то дальше логика всего шаблона(ов), если нет то обрываете работу шаблона. http://joxi.ru/p278LLEs0pNnkA.
2. Можно еще добавить доп. проверку чтобы пустые строки отсечь(если бывают)
http://joxi.ru/52a1QQesGxk0B2

Или так вообще http://joxi.ru/l2ZvVVYh8Z7kj2
 

MaxVM

Пользователь
Регистрация
20.01.2016
Сообщения
34
Благодарностей
2
Баллы
8
1. В шаблоне(ах), указан путь к одному и тому же файлу(в данном случае к csv таблице) в начале логики шаблона получаете количество строк этой таблицы, дале делаете логику(экшн if) и проверяете есть ли строки в таблице или нет. Если есть, то дальше логика всего шаблона(ов), если нет то обрываете работу шаблона. http://joxi.ru/p278LLEs0pNnkA.
2. Можно еще добавить доп. проверку чтобы пустые строки отсечь(если бывают)
http://joxi.ru/52a1QQesGxk0B2
Теперь понял! А что произойдет если все пять шаблонов одновременно попытаются получить данные, не сули чится ли путаница с данными? или этот вопрос решен в самой зенке, в плане очередей?
 

kolina

Client
Регистрация
05.10.2019
Сообщения
165
Благодарностей
47
Баллы
28
Тут вся проблема в том, что это шаблон будет для Zennobox, то есть у заказчика по идее будет работать в 20 потоков
Подскажите пожалуйста, как реализовать:
- Заказчик запустил шаблон
- Первый поток копирует таблицу
- Остальные берут данные из второй таблицы для работы
- Строки во второй таблице закончились(финиш)
Если бы просто zennoposter то понятно: один шаблон в 9.00 делает копию таблицы, а второй с 9.10 работает из скопированной таблицы. А как это всё уложить в один шаблон. В идеале один поток копирует таблицу, а потом когда таблица скопирована, подключаются все потоки
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 720
Баллы
113
Тут вся проблема в том, что это шаблон будет для Zennobox, то есть у заказчика по идее будет работать в 20 потоков
Подскажите пожалуйста, как реализовать:
- Заказчик запустил шаблон
- Первый поток копирует таблицу
- Остальные берут данные из второй таблицы для работы
- Строки во второй таблице закончились(финиш)
Если бы просто zennoposter то понятно: один шаблон в 9.00 делает копию таблицы, а второй с 9.10 работает из скопированной таблицы. А как это всё уложить в один шаблон. В идеале один поток копирует таблицу, а потом когда таблица скопирована, подключаются все потоки
очень кратко опишу.
- работу с таблицей надо лочить.
- первый поток схвативший лок, проверяет таблицу на пустоту и начинает формировать таблицу. можно прямо в таблице предусмотреть поле завершения работы. или через общую метку, которая тоже должна лочится.
- если таблица не пустая, то поток должен ждать появление метки о завершении работы.
- есть метка, значит все дружно начинают грызть данные.
- завершение работы точно так же через лок и общую метку.
 
  • Спасибо
Реакции: kolina

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