1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

Тема в разделе "Lotus - Программирование", создана пользователем Eugenus, 21 дек 2010.

  1. Eugenus

    Eugenus Гость

    Репутация:
    0
    Привет всем! Кто силен в теории, подскажите, как ведет себя Domino случае периодического запуска агента, который не успевает отрабатывать ко времени повторного запуска ? Ставит в очередь и дожидается отработки либо запускает сразу агент в отдельном потоке ?
    У меня есть кусок кода, который принудительно запускает агент через каждые 30 секунд, который далеко не всегда успевает отработать за этот интервал, при этом нагрузка на сервер вроде бы остается постоянной и вообще все работает замечательно. Такое впечатление, что домино завершает работу недовыполнившегося агента и запускает его по новой. А вы что думаете по этому поводу ?
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.195
    Симпатии:
    24
    а причем тут агент по расписанию то, если его на деле другой агент запускает принудительно?
    по правильному агент должен отрабатываться и запускаться сам, спустя время после своего завершения он должен опять запускаться
    если же его постоянно пинает другой агент то необходимо учесть эту логику и заставлять агент заканчиваться если он не уложился в дозволенное время, иначе потом дважды запущенный агент будут вдвоём тер*цензура*ить один и тот же док - и посыпется ваша логика
     
  3. Eugenus

    Eugenus Гость

    Репутация:
    0
    Полегче) Ничего не посыпется....Я вот тут всего лишь интересовался - действительно ли агент завершается, если его пинают повторно ?
    А если просто подходит его время запуска - дожидается ? Что-то я сомневаюсь насчет лотусной многопоточности...
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.195
    Симпатии:
    24
    зависит от очереди агентов и количество одновременных потоков
    если у вас 2 и более потока AMGR то есть вероятность, что агенты начнут работать паралельно, так как может получится ситуацию когда в очереди агент за агентом и пойдёт одновременный запуск
    если агентменеджер лишь один то будет "дождаться" но минус в том, что очередь агентов будет разгружаться медленно
     
  5. Eugenus

    Eugenus Гость

    Репутация:
    0
    Сорри, насчет агент менеджер - это ведь серверная задача, как их может быть несколько ? Это где-то настраивается ?
     
  6. Eugenus

    Eugenus Гость

    Репутация:
    0
    Вообще у меня есть основания предполагать, что при принудительном запуске агент менеджер не ставит выполнение в очередь, а перезапускает агент в одном-едиственном потоке. Мой агент несколько раз лопатит коллекцию документов в цикле и почему-то иной раз существенно подтормаживает на взятии тех либо иных доков, не укладываясь в отведенный пятиминутный интервал....При повторном запуске вся коллеция быстро проходит обработку. Если бы имела место неограниченная многопоточность, нагрузка на сервер возросла бы неимоверно, если бы AMGR ставил их в очередь - принудительный запуск был бы до одного места, очередь бы разгружалась медленно, как и заметил тОха. Но налицо совсем иное - такое впечатление, что агент просто перезапускается. При этом не суть важно, отработает ли агент всю коллецию до конца либо остановится на каком-то доке, поскольку неотработанные доки подхватятся на следующем запуске, важно лишь, чтобы он не застревал на середине обработки какого-то дока, внеся в него какие-либо изменения, которые сделают невозможной дальнейшую работу с ним при след. запуске. Но в моих скриптах это исключено и по тьфу-тьфу, пока все работает стабильно...
     
  7. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.195
    Симпатии:
    24
    Eugenus
    это вам так кажется, и как вы проверяли нагрузку на сервер то?
    подозреваю что колекцию вы формируете db.Search а значит одновременное срабатывание нескольких агентов на сече приведет к их резкому замедлению работы - проверял ни один раз, суть в том, чтобы выполнить сечь нужно прошуршать винтами, а проверить нагрузку на винты можно лишь через очередь I/O ни проц ни озу в єтом подходе не задействованы вообще
    вот и получается что два одновременных сеча приведут к задержке в 10 мину, а если их запустить последовательно то каждый отработает секунд за 5

    если бы они отрабатывали последовательно то "и почему-то иной раз существенно подтормаживает на взятии тех либо иных доков" - вот этого бы никогда не было, а так вы просто забили операции I/O на максимум
     
  8. Eugenus

    Eugenus Гость

    Репутация:
    0
    Не использую серчь, коллеция берется из индексированного по первому столбцу представления. Подтормаживание иногда происходит на последовательной инициализации доков из коллекции. Впрочем, ладно...Нужно будет перед завершением агента включить вывод контрольй инфы с датами в текстовый файл, вот тогда и проверю, всякий раз агент отрабатывает или нет...
     
  9. TIA

    TIA :-)
    Lotus team

    Репутация:
    0
    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    1
    Домино сама принудительно завершает агента только по истечению максимального времени отведённого на работу агентов. По-умолчанию, кажется, 15 мин. Это время можно изменить через notes.ini. В других случаях, в частности по истечению интервала запуска, Домино агента не прерывает.
    Агент который запускает другой агент, запускает второй агент в отдельном потоке? Если нет, тогда первый агент будет ждать завершения второго.
     
  10. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.195
    Симпатии:
    24
    достаточно начиная с 7ки поставить в агенте галочку - Agent Profiler и там будет подробная статистика по вызовам и их таймингам
    Подтормаживание иногда происходит на последовательной инициализации доков из коллекции - а это что не обращение к диску? :facepalm:
     
  11. Xalet

    Xalet Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Вопросик без ответа. Мне тоже интересно, можно ли настраивать?

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

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

    TIA :-)
    Lotus team

    Репутация:
    0
    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    1
    В серверном names.nsf в документе на сервер закладке "ServerTasks\AgentManager" поле "Max concurrent agents"
    Влияет на количество процессов namgr.exe. В рамках одного процесса одновременно может выполняться только 1 агент.

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

    Фигня
     
  13. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.195
    Симпатии:
    24
    глючит диск, который не справляется с очередью запросов
     
Загрузка...

Поделиться этой страницей