Изменения документа Диллема обработки сообщений

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

От версии 1.1 >
отредактировано Alexandr Fokin
на 2020/02/13 12:24
К версии < 2.1 >
отредактировано Alexandr Fokin
на 2020/08/09 15:23
>
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -1,0 +1,32 @@
1 +
2 +Ситуация:
3 +Имееться очередь, из которой приложение читает данные и обрабатывает их. Рассмотрим пример, что приложение имеет следующий цикл обработки сообщения:
4 +
5 +1) Взять сообщение из очереди
6 +2) Попытаться выполнить некоторый набор действий на основе данных из сообщения.
7 +Отметим, что обработка сообщения может завершиться как успешно, так и с ошибкой.
8 +
9 +Вариации:
10 +
11 +1]
12 +1) Получаем сообщение
13 +2) Выполняем коммит (при следующем чтении на вход пойдет следующее сообщение)
14 +3) Выполняем обработку
15 +
16 +2]
17 +1) Получаем сообщение
18 +2) Выполняем обработку
19 +3) Если п.2 выполнен успешно, то выполняем коммит (при следующем чтении на вход пойдет следующее сообщение)
20 +
21 +Возможные проблемы
22 +1 При потходе 1, мы теряем сообщение, в случае если оно его обработка не завершилась успешно.
23 +2) При потходе 2, в случае, если после выполнения 2 пунтка наше приложение упадет (не успев выполнить пункт 3), то при повтроном запуске мы обработаем то-же самое сообщение второй раз.
24 +
25 +Вопросы
26 +1) Является ли повторная обработка одного и того же сообщения допустимой для нашей системы.
27 +2) Является ли потеря данных из одного из сообщений критичной для нашей системы
28 +
29 +
30 +
31 +
32 +