Настройка запуска сценариев автоматизации через RabbitMQ

Запуск сценариев автоматизации через RabbitMQ включен по умолчанию — при возникновении в системе события в RabbitMQ автоматически ставится задача WorkflowService.RunAutomationScriptsSync по запуску сценариев в очередь automation_scripts.

Включение запуска сценариев через RabbitMQ:

{
    "Custom": {
        // ...
        "AutomationScriptsUse RabbitMQ": true// false — сценарии запускаются как раньше, 
true — сценарии запускаются через RabbitMQ (значение по умолчанию)
    }
}

Через RabbitMQ доступно указать количество узлов, которые будут обрабатывать очередь со сценариями автоматизации:

{
    "Custom": {
        // ...
        "AutomationScriptsWorkerCount": 24 
// по умолчанию равняется кол-ву ядер процессора
    }
}

Для последовательного и синхронного выполнения всех операторов сценария, у которых задана нулевая задержка (кроме оператора Уведомить), укажите настройку в БД для конкретного сценария следующим SQL-скриптом:

update
    CaseMap.AutomationScripts
set
    IsSequential = 1 -- 1 — для включения последовательного выполнения, 0 — для отключения
where
    Id = '...'-- указать идентификатор нужного сценария

Также доступно указать настройку в appsettings.json для включения последовательного выполнения для всех сценариев:

{
    "Custom": {
        // ...
        "AutomationScriptsSequentialMode": "AllScripts"// значение по умолчанию — ConfiguredScripts, 
последовательность определяется флагом в БД отдельно для каждого сценария; 
чтобы запретить последовательное выполнение глобально, нужно указать Disabled
    }
}

Внимание! Включение последовательного выполнения сценария рекомендовано только для тех сценариев, где нарушение последовательности критично, т.к. оно увеличивает время выполнения сценария.


Для включения логирования выполненных шагов сценариев необходимо включить трассировку в секции rules в nlog.config для записи идентификаторов сработавших сценариев и выполненных шагов:

<logger name="WorkflowTrace" appendTo="f" minlevel="Trace" />