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

DevOps

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

как вариант - при старте шаблона, создавать какой-то файл ( делать проверку на его наличие и создавать если его нет, а удалять по окончанию).
 
  • Спасибо
Реакции: DevOps
заблокировать наверно не получится.
если только делать проверки на колличество запущенных потоков, какие лимиты стоят, все это дело регулировать из самого шаблона.
ну и метки в файле тоже как вариант.
 
  • Спасибо
Реакции: DevOps
все просто.
в начало шаблона пихаешь сниппет который проверяет сколько потоков запущено в данный момент, если больше N (нужного числа) то шаб останавливается, при этом будет всегда работать один поток

снип найдешь тут - https://zennolab.com/discussion/thr...kak-avtomatizirovat-neskolko-shablonov.53582/
 
  • Спасибо
Реакции: Dr.Pipetka и DevOps
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
все просто.
в начало шаблона пихаешь сниппет который проверяет сколько потоков запущено в данный момент, если больше N (нужного числа) то шаб останавливается, при этом будет всегда работать один поток

снип найдешь тут - https://zennolab.com/discussion/thr...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
Вы видимо постигли Дзэн с такими скиллами :-) Годно, забрал в коллекцию. Статья - ОГОНЬ
73990
 
  • Спасибо
Реакции: DevOps
все просто.
в начало шаблона пихаешь сниппет который проверяет сколько потоков запущено в данный момент, если больше N (нужного числа) то шаб останавливается, при этом будет всегда работать один поток

снип найдешь тут - https://zennolab.com/discussion/thr...kak-avtomatizirovat-neskolko-shablonov.53582/


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

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

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

главное предусмотреть случаи удаления файла при бед енде и после вылетов постера.
 
  • Спасибо
Реакции: DevOps и Alexmd
Ну, тогда можно пойти дальше и все равно оставить все в сниппете)
При запуске шаблона проверять наличие на компьютере копии шаблона. Слишком мала вероятность того, что совершенно разные шаблоны будут иметь одинаковый вес байт в байт. Далее при нахождении или удаляются все копии или просто вылазит алерт, что обнаружена копия программы.
 
не надо городить, файлы и прочее..
тогда делаем в одном снипе

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

73991
 
  • Спасибо
Реакции: one, Meteorburn и Alexmd
херня эти ваши высокие технологии))

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

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

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

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


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

73992


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

какая разница, у всех ваших клиентов есть папка C:\Program Files\ZennoLab туда и ппихайте)

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

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


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

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

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

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

Можно узнать по имени шаблона количество потоков.
 
какая разница, у всех ваших клиентов есть папка C:\Program Files\ZennoLab туда и ппихайте)



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


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

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

Прям топчег) неделей ранее можно было бы в конкурс шаблонов выкладывать)
 
какая разница, у всех ваших клиентов есть папка C:\Program Files\ZennoLab туда и ппихайте)



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


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

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

Вложения

  • unnamed.jpg
    unnamed.jpg
    132,4 KB · Просмотры: 190

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