Запуск сценариев автоматизации через 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" />