Запуск нескольких агентов

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

  1. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Всем привет!
    В базе есть несколько шедульных агентов с интервалом запуска каждые 5 минут. Агенты на Java с подключением одной и той же библиотеки
    В задачах сервера агенты есть. Время запуска практически одинаковое, но не смотря на это - агенты запускаются последовательно. Возможен ли параллельный запуск агентов по шедулеру из одной базы?
     
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    через агент пускатель?
    НО треды на запуск агентов (их кол-во) - тонкая материя и ЕМНИП - завязана на кол-во ядер процов (могу наврать)
     
  3. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Тоже думаю через агент-пускатель. Это один из вариантов и самый простой.
    Второе - думаю реализовать многопоточность в агенте.
     
  4. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    с агентом-пускателем возникает вопрос... как узнать во вложенном агенте, что он уже запущен?
    кроме использования документа-профиля
     
  5. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    NickProstoNick, думаю никак.
    Ибо у самого идея сделать именно через запускатель:
    Запускатель кидает команду на старт агента через консоль.
    Агент стартует и пишет в свой "профайл" - "старт" + когда
    , затем "конец" + когда.
    В коде самого агента сделать обращение к "профайлу" для определения признака "стоп" для прерывания агента.
    На сервере сделать 3 потока для агентов
    Прописывать в "профайл" агента время и статистику работы, а так же врем следующего запуска.
    Агентов сделать шедулийными тригер: Never/None + выключить в дизайнере.
    То есть единственный активный агент на сервере - запускатель, остальные стартуют через консоль.
    Можно еще попробовать сервера попробовать выбирать, где какой агент стартует, тогда еще интереснее получается.
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.074
    Симпатии:
    300
    остается открытым вопрос асинхронности этих потоков, учитывая еще и потоки для http и jvm агентов
     
  7. rinsk

    rinsk Lotus team
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    795
    Симпатии:
    78
    Профайл - это хорошо... только не надежно, когда начинает драться сам с собой. Перешел на док с UID как ф-ция от имени агента базы и т.п.
     
  8. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    в данном случае профайл это не тот профайл. Имеется в виду просто настроечный док для агента, где все прописано.
     
  9. rinsk

    rinsk Lotus team
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    795
    Симпатии:
    78
    Да, выразился не верно) Профилю-профилево, а защита от повторного запуска агента нужна. Иногда проще пннуть его через program док сервера.
    P.S. - почему встрял: делал такие пускачи. гадит в консоль оно конечно знатно)
     
  10. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    ну в общем сделал через пускач, а в переменную окружения устанавливаю флаг запуска.
    Пока работает, но опасаюсь таймаута. Надо как-то флаги сбрасывать, если агент отвалится
     
Загрузка...

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