Возможно ли иметь несколько прослушивателей сообщений, передаваемых MSMQ?
WCF, кажется, создает все с точки зрения услуг, делая общение делом точка-точка. Я хочу использовать очередь сообщений для буферизации входящего трафика для другого процесса, который записывает журналы в базу данных.
Может быть любое количество других процессов, заинтересованных в мониторинге входящего трафика, и это положительно напрашивается на шаблон Observer, но я не понимаю, как выразить шаблон Observer, по крайней мере, не используя MSMQ через WCF.
Может кто-нибудь посоветовать мне это?
Некоторая справка о том, почему я забочусь, что также может служить иллюстрацией проблемы: у меня есть служба Windows, которая принимает запросы на подключение от маленьких чёрных ящиков в поле. Он устанавливает сокеты, и черные ящики отправляют сообщения, описывающие события, отмеченные местоположениями GPS во времени и пространстве.
Я анализирую пакеты сообщений из потока сокетов и отправляю их через MSMQ другому процессу, который фильтрует дубликаты и записывает пакеты в таблицу базы данных.
Существует любая последующая обработка, которая выиграет от дополнительных вычислений в ответ на входящий трафик, а пользовательские инструменты выполняют уведомление пользователей также в ответ на входящий трафик.
Итак, мне бы очень хотелось, чтобы один процесс отправлял сообщения, а несколько - их. Один из этих получателей отвечает за анализ содержимого пакета и запись сообщения в базу данных; это очевидный кандидат на ответственность за окончательное удаление сообщения из очереди, но возникает вопрос, как обеспечить, чтобы это был последний обработчик для обработки сообщения.