Сервис Workflow

Этапы обработки БП сервисом Workflow:
  1. Детектор активных процессов — часть службы "Workflow Server" — осуществляет периодический поиск необработанных бизнес-процессов в системе Docsvision, и формирует список активных процессов.

    В список включаются в порядке обнаружения)
    • БП, которые находятся на обработке — выполняются в данный момент времени.

    • БП, которые находятся в очереди на обработку.

    • Новые активные процессы, появившиеся в системе со времени проведения предыдущего поиска.

  2. Из списка активных процессов формируется очередь процессов, в которую попадают активные, готовые к обработке БП. Из списка выбираются процессы, которых нет в очереди процессов и в группе обрабатываемых процессов.

    Место БП в очереди процессов определяется числом очков у данного БП, которое вычисляется по формуле: Число очков = число секунд с момента последней обработки процесса + бонус/малус за приоритет + бонус для никогда не обрабатывавшихся процессов.

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

  3. Из очереди процессов для обработки выбираются БП с наибольшим числом очков. Данные БП попадают в группу обрабатываемых процессов.

    1. На обработку каждого БП выделяется определенное время — квант времени, длительность которого вычисляется по формуле: квант времени = бонус/малус за приоритет процесса * время обработки процесса (из конфигурации службы).

      Если за отведенный квант времени не были выполнены все функции БП, он будет возвращен в очередь процессов после завершения текущей обрабатываемой функции.

    2. На выполнение каждой функции БП выделяется одинаковое время — время ожидания выполнения функции.

      Если функция БП не была завершена за время ожидания выполнения функции, БП будет объявлен превысившим таймаут, функция продолжит выполняться до естественного или принудительного завершения.

      Если в группе обрабатываемых процессов набирается определенное количество превысивших таймаут БП, когда другие БП из очереди процессов не могут попасть на обработку. Рабочий процесс (ExecLogic) службы Workflow Server будет перезагружен, при этом дается 1 минута на завершение других, нормально работающих БП. В течение этой минуты новые БП на обработку не передаются.

  4. Выполненные БП удаляются из группы обрабатываемых процессов. В группу передается следующий БП (с большим приоритетом) из очереди процессов.

Схема работы службы "Workflow Server"
Рисунок 1. Схема работы службы "Workflow Server"