Изменения документа Диллема обработки сообщений
Редактировал(а) Alexandr Fokin 2024/06/12 16:21
<
>
отредактировано Alexandr Fokin
на 2024/02/02 10:03
на 2024/02/02 10:03
отредактировано Alexandr Fokin
на 2024/06/12 15:40
на 2024/06/12 15:40
Изменить комментарий:
Updated parent field.
Комментарий
-
Свойства страницы (2 изменено, 0 добавлено, 0 удалено)
Подробности
- Свойства страницы
-
- Родительский документ
-
... ... @@ -1,1 +1,1 @@ 1 -Архитектура и модели.Модели. КонвейериЗапрос-Ответ.WebHome1 +xwiki:Архитектура и модели.Модели.Синхронное и асинхронное взаимодействие.WebHome - Содержимое
-
... ... @@ -39,13 +39,13 @@ 39 39 ))) 40 40 | |((( 41 41 Замечание: на текущий момент отношу проблему к [[Dual write problem>>doc:Архитектура и модели.Группа\. Распределенные системы.Распределенные системы\. Консистентность.Dual write problem.WebHome]]. 42 -По хорошему у каждого запроса или хотя бы сообщения должен быть уникальный ключ. Использую его, транзакцию, таблицу с уникальным индексом можно добиться гарантии, что сообщение будет обработано только единожды. 42 +По хорошему у каждого запроса или хотя бы сообщения должен быть уникальный ключ. Использую его, транзакцию, таблицу с уникальным индексом можно добиться гарантии, что сообщение будет обработано только единожды. Транзакция БД позволяет атомарно зафиксировать и изменения и факт обработки сообщения (по его ключу). 43 43 44 +Отдельный вопрос: хотим ли мы использовать очередь для приостановки обработки в случае ошибок. Зачастую мы не хотим останавливать обработку из-за одной ошибки. В таком случае важно сохранить проблемное сообщение, но при этом сделать так чтобы обработчик продолжил обрабатывать последующие сообщения. 45 + 44 44 Возможен вариант, когда сообщение просто записывается в БД в статусе ожидает обработку. И фоновый обработчик разбирает таблицу и обрабатывает необходимые строки. 45 45 ))) 46 46 | | 47 47 48 48 49 - 50 - 51 51