Автоматизации — механизм реагирования DDP на изменения спецификации сущностей.
Каждая автоматизация может подписываться на обновления сущностей какого-либо ресурса по определённым правилам. При возникновении события обновления автоматизация запускает выполнение действия, процесса или синхронизации источника данных.
Автоматизация может запускать выполнение как для сущности, которая вызвала триггер, так и для связанных с ней сущностей в соответствии с настройками.
Интерфейс настройки автоматизации
Форма создания и редактирования автоматизации разделена на логические секции.
Триггеры
Секция для настройки условий, при которых автоматизация будет запускаться. Каждая автоматизация может содержать произвольное количество триггеров.
При настройке каждого триггера указываются:
- «Ресурс» — ресурс, события с сущностями которого будут являться триггером для запуска автоматизации;
- «Условие» — условие в формате Go template, описывающее, изменения какого параметра будет считаться триггером для запуска автоматизации и какое именно значение должен принять изменённый параметр.
Примеры условий триггера:
{{ ne .entity.properties.id 0 }}— автоматизация будет запускаться, если значение параметраidизменилось и после изменения стало не равным нулю;{{ eq .entity.properties.status "Failed" }}— автоматизация будет запускаться, если значение параметраstatusизменилось наFailedс любого другого.
Выполнение
Секция для настройки того, что будет выполняться при срабатывании триггера автоматизации.
Настраиваются:
- «Тип выполнения» — тип объекта, который будет выполняться: действие, процесс или синхронизация источника данных;
- «Объект выполнения» — конкретный объект (действие, процесс или источник данных), который будет выполняться.
Для действий и процессов доступна дополнительная настройка:
- «Запускать выполнение для связанных ресурсов» — при включении этой опции выполнение будет автоматически запускаться для всех сущностей, имеющих соответствующую связь с изменённой сущностью. При этом выполнение не будет запущено на сущность, вызвавшую событие.
Синхронизация
Секция для настройки периодической синхронизации — автоматического запуска автоматизации по расписанию.
Настраиваются:
- «Периодическая синхронизация» — включение/выключение периодической синхронизации;
- «Периодичность запуска» — cron-выражение для настройки частоты запуска автоматизации (например,
0 0 * * *для ежедневного запуска в полночь).
Триггеры
Механизм работы триггеров автоматизаций основан на событиях (events), которые генерируются при каждом создании, изменении либо удалении любой сущности любого ресурса.
Автоматизации:
- Прослушивают события указанных в конфигурации триггеров ресурсов.
- Проверяют, изменилось ли значение параметра, указанного в условиях триггера.
- При изменении сравнивают текущее значение параметра с условием.
- При соответствии условию запускают выполнение.
Новые автоматизации обрабатывают только события, которые произошли после их создания. События, произошедшие до создания автоматизации, не будут обработаны.