Изменения документа Примеры
Редактировал(а) Alexandr Fokin 2026/08/26 19:05
От версии 8.29
отредактировано Alexandr Fokin
на 2026/07/27 03:31
на 2026/07/27 03:31
Изменить комментарий:
К данной версии нет комментариев
К версии 8.30
отредактировано Alexandr Fokin
на 2026/07/27 03:59
на 2026/07/27 03:59
Изменить комментарий:
К данной версии нет комментариев
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -75,10 +75,12 @@ 75 75 1. После коммита транзакции удаляем id дочернего процесса из redis hashset. 76 76 (Таким устраняем возможность потери сигнала, а также дублирование прокрутки счетчика). 77 77 1. Trigger при получении события смотрит значение счетчика и HashSet. 78 -Если счетчик 0 и HashSet пустой, то скорее всего все корректно и триггер может активироваться. 78 +Если счетчик 0 и HashSet пустой, то активируем триггер. 79 +Внутри хендлера проверяем что все процессы завершены (если нет, то значит были проблемы переходим в аварийный режим и ждем сигналов от незавершенных процессов). 79 79 Иначе если HashSet не пустой, то можно попытаться проверить статус процесса (если он завершен, то можно удалить значение из HashSet). 80 80 ))) 81 81 |Проблемы: Потеря счетчика целиком или искажения значения в случае падения Redis. 83 +В таком случае дочерние процессы переходят в аварийный режим (каждый раз публикуют событие сигнал, а также событие взведения таймера чтобы сгладить нагрузку). 82 82 ))) 83 83 ))) 84 84 |2|(% style="width:188px" %)Transaction outbox stream process.|(% style="width:1268px" %)[[image:TransactionOutbox. Sequence.jpg]]