• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Об агентах по расписанию

  • Автор темы Автор темы Eugenus
  • Дата начала Дата начала
E

Eugenus

Привет всем! Кто силен в теории, подскажите, как ведет себя Domino случае периодического запуска агента, который не успевает отрабатывать ко времени повторного запуска ? Ставит в очередь и дожидается отработки либо запускает сразу агент в отдельном потоке ?
У меня есть кусок кода, который принудительно запускает агент через каждые 30 секунд, который далеко не всегда успевает отработать за этот интервал, при этом нагрузка на сервер вроде бы остается постоянной и вообще все работает замечательно. Такое впечатление, что домино завершает работу недовыполнившегося агента и запускает его по новой. А вы что думаете по этому поводу ?
 
а причем тут агент по расписанию то, если его на деле другой агент запускает принудительно?
по правильному агент должен отрабатываться и запускаться сам, спустя время после своего завершения он должен опять запускаться
если же его постоянно пинает другой агент то необходимо учесть эту логику и заставлять агент заканчиваться если он не уложился в дозволенное время, иначе потом дважды запущенный агент будут вдвоём тер*цензура*ить один и тот же док - и посыпется ваша логика
 
Полегче) Ничего не посыпется....Я вот тут всего лишь интересовался - действительно ли агент завершается, если его пинают повторно ?
А если просто подходит его время запуска - дожидается ? Что-то я сомневаюсь насчет лотусной многопоточности...
 
Полегче) Ничего не посыпется....Я вот тут всего лишь интересовался - действительно ли агент завершается, если его пинают повторно ?
А если просто подходит его время запуска - дожидается ?
зависит от очереди агентов и количество одновременных потоков
если у вас 2 и более потока AMGR то есть вероятность, что агенты начнут работать паралельно, так как может получится ситуацию когда в очереди агент за агентом и пойдёт одновременный запуск
если агентменеджер лишь один то будет "дождаться" но минус в том, что очередь агентов будет разгружаться медленно
 
Сорри, насчет агент менеджер - это ведь серверная задача, как их может быть несколько ? Это где-то настраивается ?
 
Вообще у меня есть основания предполагать, что при принудительном запуске агент менеджер не ставит выполнение в очередь, а перезапускает агент в одном-едиственном потоке. Мой агент несколько раз лопатит коллекцию документов в цикле и почему-то иной раз существенно подтормаживает на взятии тех либо иных доков, не укладываясь в отведенный пятиминутный интервал....При повторном запуске вся коллеция быстро проходит обработку. Если бы имела место неограниченная многопоточность, нагрузка на сервер возросла бы неимоверно, если бы AMGR ставил их в очередь - принудительный запуск был бы до одного места, очередь бы разгружалась медленно, как и заметил тОха. Но налицо совсем иное - такое впечатление, что агент просто перезапускается. При этом не суть важно, отработает ли агент всю коллецию до конца либо остановится на каком-то доке, поскольку неотработанные доки подхватятся на следующем запуске, важно лишь, чтобы он не застревал на середине обработки какого-то дока, внеся в него какие-либо изменения, которые сделают невозможной дальнейшую работу с ним при след. запуске. Но в моих скриптах это исключено и по тьфу-тьфу, пока все работает стабильно...
 
Eugenus
это вам так кажется, и как вы проверяли нагрузку на сервер то?
подозреваю что колекцию вы формируете db.Search а значит одновременное срабатывание нескольких агентов на сече приведет к их резкому замедлению работы - проверял ни один раз, суть в том, чтобы выполнить сечь нужно прошуршать винтами, а проверить нагрузку на винты можно лишь через очередь I/O ни проц ни озу в єтом подходе не задействованы вообще
вот и получается что два одновременных сеча приведут к задержке в 10 мину, а если их запустить последовательно то каждый отработает секунд за 5

если бы они отрабатывали последовательно то "и почему-то иной раз существенно подтормаживает на взятии тех либо иных доков" - вот этого бы никогда не было, а так вы просто забили операции I/O на максимум
 
Не использую серчь, коллеция берется из индексированного по первому столбцу представления. Подтормаживание иногда происходит на последовательной инициализации доков из коллекции. Впрочем, ладно...Нужно будет перед завершением агента включить вывод контрольй инфы с датами в текстовый файл, вот тогда и проверю, всякий раз агент отрабатывает или нет...
 
У меня есть кусок кода, который принудительно запускает агент через каждые 30 секунд, который далеко не всегда успевает отработать за этот интервал, при этом нагрузка на сервер вроде бы остается постоянной и вообще все работает замечательно. Такое впечатление, что домино завершает работу недовыполнившегося агента и запускает его по новой. А вы что думаете по этому поводу ?
Домино сама принудительно завершает агента только по истечению максимального времени отведённого на работу агентов. По-умолчанию, кажется, 15 мин. Это время можно изменить через notes.ini. В других случаях, в частности по истечению интервала запуска, Домино агента не прерывает.
Агент который запускает другой агент, запускает второй агент в отдельном потоке? Если нет, тогда первый агент будет ждать завершения второго.
 
Не использую серчь, коллеция берется из индексированного по первому столбцу представления. Подтормаживание иногда происходит на последовательной инициализации доков из коллекции. Впрочем, ладно...Нужно будет перед завершением агента включить вывод контрольй инфы с датами в текстовый файл, вот тогда и проверю, всякий раз агент отрабатывает или нет...
достаточно начиная с 7ки поставить в агенте галочку - Agent Profiler и там будет подробная статистика по вызовам и их таймингам
Подтормаживание иногда происходит на последовательной инициализации доков из коллекции - а это что не обращение к диску? :facepalm:
 
Сорри, насчет агент менеджер - это ведь серверная задача, как их может быть несколько ? Это где-то настраивается ?

Вопросик без ответа. Мне тоже интересно, можно ли настраивать?

А если агенты по расписанию отрабатывают, то непременно дождутся окончания работы уже запущенного?

А еще слышал про ограничение по колличеству агенотов в базе. Если больше 8, а-мнгр начинает глючить(в 6ке). Так ли это?
 
Вопросик без ответа. Мне тоже интересно, можно ли настраивать?
В серверном names.nsf в документе на сервер закладке "ServerTasks\AgentManager" поле "Max concurrent agents"
Влияет на количество процессов namgr.exe. В рамках одного процесса одновременно может выполняться только 1 агент.

А если агенты по расписанию отрабатывают, то непременно дождутся окончания работы уже запущенного?
Не знаю как сейчас, но в 5ке в одной БД одновременно мог запускаться только 1 шедульный агент. Перед запуском очередного предыдущий должен быть завершён.

А еще слышал про ограничение по колличеству агенотов в базе. Если больше 8, а-мнгр начинает глючить(в 6ке). Так ли это?
Фигня
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab