Запрет на запуск шаблона в несколько потоков

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
Здравствуйте форумчане. Я не нашел похожей темы (хотя может не внимательно искал).
Интересует такой вопрос - как в шаблоне который я передаю третьим лицам ограничить работу шаблона строго в один поток?
Суть проблемы такова - есть шаблон который использует API с ограничением запросов в момент времени (3000 в секунду), и сам шаблон в одном потоке выдерживает данные требования. Но несмотря на мой инструктаж по работе с шаблоном, некоторые индивидуумы запускают его в несколько потоков, выбирают лимиты и блокируют API.
UPD Порекомендуйте что то годное по REST API для Zennopostera/ В личку желательно, чтобы бесконечно не апать тему
 
Последнее редактирование:

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 697
Благодарностей
940
Баллы
113
Здравствуйте форумчане. Я не нашел похожей темы (хотя может не внимательно искал).
Интересует такой вопрос - как в шаблоне который я передаю третьим лицам ограничить работу шаблона строго в один поток?
Суть проблемы такова - есть шаблон который использует API с ограничением запросов в момент времени (3000 в секунду), и сам шаблон в одном потоке выдерживает данные требования. Но несмотря на мой инструктаж по работе с шаблоном, некоторые индивидуумы запускают его в несколько потоков, выбирают лимиты и блокируют API.
как вариант - при старте шаблона, создавать какой-то файл ( делать проверку на его наличие и создавать если его нет, а удалять по окончанию).
 
  • Спасибо
Реакции: DevOps

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 719
Баллы
113
заблокировать наверно не получится.
если только делать проверки на колличество запущенных потоков, какие лимиты стоят, все это дело регулировать из самого шаблона.
ну и метки в файле тоже как вариант.
 
  • Спасибо
Реакции: DevOps

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
все просто.
в начало шаблона пихаешь сниппет который проверяет сколько потоков запущено в данный момент, если больше N (нужного числа) то шаб останавливается, при этом будет всегда работать один поток

снип найдешь тут - https://zennolab.com/discussion/threads/kak-ja-organizoval-polnuju-avtonomnost-servera-skaz-o-tom-kak-avtomatizirovat-neskolko-shablonov.53582/
 
  • Спасибо
Реакции: Dr.Pipetka и DevOps

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 307
Благодарностей
865
Баллы
113
C#:
string exePath = Environment.CurrentDirectory + @"\TasksRunner.exe";
var process = new System.Diagnostics.Process();
process.StartInfo.FileName = exePath;
process.StartInfo.Arguments = @"-o SetThreads 1 -names """ + project.Name.Replace(".xmlz", "").Replace(".zp", "") + @"""";
process.Start();
 
  • Спасибо
Реакции: DevOps

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
все просто.
в начало шаблона пихаешь сниппет который проверяет сколько потоков запущено в данный момент, если больше N (нужного числа) то шаб останавливается, при этом будет всегда работать один поток

снип найдешь тут - https://zennolab.com/discussion/threads/kak-ja-organizoval-polnuju-avtonomnost-servera-skaz-o-tom-kak-avtomatizirovat-neskolko-shablonov.53582/
Вы видимо постигли Дзэн с такими скиллами :-) Годно, забрал в коллекцию. Статья - ОГОНЬ

C#:
string exePath = Environment.CurrentDirectory + @"\TasksRunner.exe";
var process = new System.Diagnostics.Process();
process.StartInfo.FileName = exePath;
process.StartInfo.Arguments = @"-o SetThreads 1 -names """ + project.Name.Replace(".xmlz", "").Replace(".zp", "") + @"""";
process.Start();
Спасибо. Почему то вспомнился автомат Калашникова :-)
 
  • Спасибо
Реакции: Meteorburn и Dr.Pipetka

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
  • Спасибо
Реакции: DevOps

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 697
Благодарностей
940
Баллы
113
все просто.
в начало шаблона пихаешь сниппет который проверяет сколько потоков запущено в данный момент, если больше N (нужного числа) то шаб останавливается, при этом будет всегда работать один поток

снип найдешь тут - https://zennolab.com/discussion/threads/kak-ja-organizoval-polnuju-avtonomnost-servera-skaz-o-tom-kak-avtomatizirovat-neskolko-shablonov.53582/

херня эти ваши высокие технологии))

проверку кол-ва запусков шаблона можно легко обойти просто добавив еще 1 шаблон в постер... тоже сначала подумал про чекать кол-во потоков.

размещаем файл в какой нибудь папке темп где нибудь подальше от глаз в C:\Program Files\ZennoLab\RU\ZennoPoster Lite V7\7.3.2.1\Progs\Trash

главное предусмотреть случаи удаления файла при бед енде и после вылетов постера.
 
  • Спасибо
Реакции: DevOps и Alexmd

Alexmd

Client
Регистрация
10.12.2018
Сообщения
1 022
Благодарностей
1 424
Баллы
113
Ну, тогда можно пойти дальше и все равно оставить все в сниппете)
При запуске шаблона проверять наличие на компьютере копии шаблона. Слишком мала вероятность того, что совершенно разные шаблоны будут иметь одинаковый вес байт в байт. Далее при нахождении или удаляются все копии или просто вылазит алерт, что обнаружена копия программы.
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 052
Благодарностей
6 481
Баллы
113
не надо городить, файлы и прочее..
тогда делаем в одном снипе

1. проверка названия шаблона, если название НЕ равно оригинальное название(originalName.zp), то остановка
2. проверяем количество запущенных потоков

73991
 
  • Спасибо
Реакции: one, Meteorburn и Alexmd

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
херня эти ваши высокие технологии))

проверку кол-ва запусков шаблона можно легко обойти просто добавив еще 1 шаблон в постер... тоже сначала подумал про чекать кол-во потоков.

размещаем файл в какой нибудь папке темп где нибудь подальше от глаз в C:\Program Files\ZennoLab\RU\ZennoPoster Lite V7\7.3.2.1\Progs\Trash

главное предусмотреть случаи удаления файла при бед енде и после вылетов постера.
Но ведь шаблон будет работать на другом компе

Ну, тогда можно пойти дальше и все равно оставить все в сниппете)
При запуске шаблона проверять наличие на компьютере копии шаблона. Слишком мала вероятность того, что совершенно разные шаблоны будут иметь одинаковый вес байт в байт. Далее при нахождении или удаляются все копии или просто вылазит алерт, что обнаружена копия программы.
Вопрос не в копии запущенных шаблонов, а в защите "от дурака" чтобы для "повышение эффективности, путем уменьшения необходимого времени" конечный пользователь не поставил выполнение шаблона в 2,10,100 потоков и не выбил доступ к API из за превышения лимита запросов в секунду
 

sitnem

Client
Регистрация
03.12.2016
Сообщения
122
Благодарностей
78
Баллы
28
1. проверка названия шаблона, если название НЕ равно оригинальное название(originalName.zp), то остановка

Так это не проблема добавить два одинаковых шаблона, просто скопировал папку и запустил из другого места.

73992


А.. Типа можно пройтись по ним: узнать кол-во потоков всех клонов... Мы же вроде из одного шаблона можем узнать количество потоков в другом работающем шаблоне?
 

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 697
Благодарностей
940
Баллы
113
Но ведь шаблон будет работать на другом компе
какая разница, у всех ваших клиентов есть папка C:\Program Files\ZennoLab туда и ппихайте)

1. проверка названия шаблона, если название НЕ равно оригинальное название(originalName.zp), то остановка
2. проверяем количество запущенных потоков
как будто у пользователя нет возможности переименовать сам файл шаблона, сделать его копию и т.д. сниппеты подходят только для зеннобоксов.


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

п.с. идеальный вариант - чек потоков, + чек файла (причем несколько раз за выполнение).
 
  • Спасибо
Реакции: DevOps

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 472
Благодарностей
575
Баллы
113
Так это не проблема добавить два одинаковых шаблона, просто скопировал папку и запустил из другого места.

Посмотреть вложение 73992

А.. Типа можно пройтись по ним: узнать кол-во потоков всех клонов... Мы же вроде из одного шаблона можем узнать количество потоков в другом работающем шаблоне?
Можно узнать по имени шаблона количество потоков.
 

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 472
Благодарностей
575
Баллы
113
какая разница, у всех ваших клиентов есть папка C:\Program Files\ZennoLab туда и ппихайте)



как будто у пользователя нет возможности переименовать сам файл шаблона, сделать его копию и т.д. сниппеты подходят только для зеннобоксов.


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

А если раскопировать шаблон в зено, то получить количество потоков для всех шаблонов с одинаковым названием.
 
  • Спасибо
Реакции: djaga и Konrod_m

Konrod_m

Client
Регистрация
18.09.2014
Сообщения
1 697
Благодарностей
940
Баллы
113
В шаблоне код, который не даёт запустить проект, если файл проекта и файл шаблона отличается от предустановленного названия.
Прям топчег) неделей ранее можно было бы в конкурс шаблонов выкладывать)
 

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
какая разница, у всех ваших клиентов есть папка C:\Program Files\ZennoLab туда и ппихайте)



как будто у пользователя нет возможности переименовать сам файл шаблона, сделать его копию и т.д. сниппеты подходят только для зеннобоксов.


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

п.с. идеальный вариант - чек потоков, + чек файла (причем несколько раз за выполнение).
Спасибо. Буду разбираться.
Пока "костыль" - написать шаб на LITE версии и выписать Box -пользователь больше одного потока не запустит.
 
  • Спасибо
Реакции: djaga

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 307
Благодарностей
865
Баллы
113
Спасибо. Буду разбираться.
Пока "костыль" - написать шаб на LITE версии и выписать Box -пользователь больше одного потока не запустит.
Ненадо тут ничего костылить.
Первым кубиком :
Проверка имя шаба, если неверное то завершаем шаб.
Проверка количества потоков, если больше 1 то ставим 1 и завершаем(при условии что выполнений стоит -1 или просто добавляем еще 1 попытку)
Все.
 
  • Спасибо
Реакции: djaga и DevOps

DevOps

Client
Регистрация
30.11.2020
Сообщения
496
Благодарностей
314
Баллы
63
Ненадо тут ничего костылить.
Первым кубиком :
Проверка имя шаба, если неверное то завершаем шаб.
Проверка количества потоков, если больше 1 то ставим 1 и завершаем(при условии что выполнений стоит -1 или просто добавляем еще 1 попытку)
Все.
Все работает.
Я час назад написал Ваш код и отвлекся, а затем забыл за него пока читал письма
Внимательность не мой конек
 

Вложения

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