Изменения документа Выполнение процесса

Редактировал(а) Alexandr Fokin 2024/06/12 15:27

<
От версии < 1.10 >
отредактировано Alexandr Fokin
на 2024/01/11 13:33
К версии < 1.12 >
отредактировано Alexandr Fokin
на 2024/01/15 18:12
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -1,3 +1,4 @@
1 +|(% style="width:131px" %) |(% style="width:1307px" %)[[Блокировки>>doc:Архитектура и модели.Блокировки.WebHome]]
1 1  |(% style="width:131px" %)Типы этапов|(% style="width:1307px" %)(((
2 2  |(% style="width:204px" %)Автоматическая обработка|(% style="width:1084px" %)
3 3  |(% style="width:204px" %)Ожидание события|(% style="width:1084px" %)Сообщение от внешней системы.
... ... @@ -7,13 +7,13 @@
7 7  )))
8 8  |(% style="width:131px" %)Консистентность|(% style="width:1307px" %)(((
9 9  | |При обработке процесса важно гарантировать, что один и тот-же экземпляр процесса в один момент времени обрабатывается одним обработчиком.
10 -| |Обработчик при обработке содержит у себя актуальное состояние процесса, и никто другой не модифицирует его до окончания работы обработчика (если не предполагаем возможность оптимистичной блокировки с retry).
11 +| |Гарантировать, что обработчик при обработке содержит у себя актуальное состояние процесса, и никто другой не модифицирует его до окончания работы обработчика (если не предполагаем возможность оптимистичной блокировки с retry).
11 11  | |(((
12 -Обработчик перед внесением изменений убедился, что процесс находится на нужном шаге.
13 +Гарантировать, что обработчик перед внесением изменений убедился, что процесс находится на нужном шаге.
13 13  
14 14  Ситуация 1.
15 15  Нам поступило сообщение от внешней системы, по которому мы должны продолжить некоторый экземпляр процесса. Мы берем это экземпляр и перед обработкой проверяем его статус. Если вдруг обнаружилось, что статус некорректный, то это обозначает что возникла ошибка.
16 -Например это может быть вызвано задвоением при отправки сообщений от внешней системы ([[Dual write problem>>doc:Архитектура и модели.Группа\. Распределенные системы.Распределенные системы\. Консистентность.Dual write problem.WebHome]]), если при взаимодействии мы не используем подход с уникальной идентификацией сообщений. Ранее приходило первый экземпляр этого сообщения и процесс уже продолжил свое выполнение далее, но вот поступил второй экземпляр того-же сообщения, и мы фиксируем что процесс не находится в нужном состоянии для его обработки. При этом у нас есть возможность реализовать это таким образом, что мы не повредим консистентность процесса.
17 +Например это может быть вызвано задвоением при отправки сообщений от внешней системы ([[Dual write problem>>doc:Архитектура и модели.Группа\. Распределенные системы.Распределенные системы\. Консистентность.Dual write problem.WebHome]]), если при взаимодействии мы не используем подход с уникальной идентификацией сообщений. Ранее приходил первый экземпляр этого сообщения и процесс уже продолжил свое выполнение далее, но вот поступил второй экземпляр того-же сообщения, и мы фиксируем что процесс не находится в нужном состоянии для его обработки. При этом у нас есть возможность реализовать это таким образом, что мы не повредим консистентность процесса.
17 17  Момент с уникальной идентификацией заявок, также относиться и к инициализации процесса на основании события.
18 18  
19 19  Ситуация 2.