Я разрабатываю систему, которая получает сообщения, связанные с деятельностью пациента в больнице, анализирует и сохраняет эти данные (сообщения HL7 2.x).Некоторые сообщения могут содержать основную информацию о пациенте, другие сообщения могут содержать результаты лабораторных исследований, расшифрованные документы и т. Д.
Я хотел бы использовать для этого асинхронную надежную систему обмена сообщениями (например, WCF + MSMQ или Apache Camel +).ActiveMQ. Похоже, что эти технологии подойдут.
У меня проблемы с пониманием того, как применять эти технологии для решения проблемы. Если приходит сообщение и что-то идет не так при разборе и хранении данныхдля пациента мне нужно прекратить обработку входящих сообщений для этого пациента, пока проблема не будет решена.
Я не хочу останавливать обработку сообщений для всех пациентов, если возникает проблема, только сообщения для одного пациентау меня есть проблема.
Есть ли какой-то шаблон проектирования или какой-то метод обработки подобных ситуаций, которые я пропускаю?
Скорее всего, я буду использовать базу данных для хранения сообщений и сохраненияотслеживать отдельные очереди пациентов. При возникновении ошибки я могу заблокироватьТаким образом, сообщения больше не будут обрабатываться, пока проблема не будет решена.
Я просто ищу проверку вменяемости.Есть ли более простой способ сделать это, или ручное управление очередями и пациентами в базе данных является разумным способом решения этой проблемы?