Я просто новичок в служебных шинах (в частности, NServiceBus) и только что написал свою первую сагу.
Сага предназначена для получения транзакции, а затем отправки сообщений для проверки идентификатора пользователя, сведений о платеже, сведений о продукте и т. д. в основном закрытой системе (труднодоступной программно). теперь некоторые функции легко автоматизировать и написать обработчики, но есть несколько случаев, когда для завершения транзакции требуется ручное вмешательство, поскольку для выполнения этих задач нет доступного API. Теперь у нас будет несколько агентов-людей, работающих против этого, поэтому параллелизм является проблемой, и я подумал, почему бы не сделать так, чтобы каждый пользователь извлекал следующее сообщение по требованию, и таким образом использовать параллелизм, присущий MSMQ.
Я не смог найти какие-либо методы в IBus на nhibernate, чтобы разрешить получение следующего доступного сообщения по запросу, поскольку кажется, что все основано на push. Поэтому я создал прототип пользовательского интерфейса, который вручную извлекает сообщения из MSMQ с помощью стандартного API .NET System.Messaging.MessageQueue и позволяет пользователю взаимодействовать с этим, а затем отправлять ответ обратно в сагу, записывая ответ обратно через IBus. Метод Отправить().
Мой главный вопрос в связи с этим: нарушает ли это фундаментальные принципы NServiceBus? а если нет, то можно ли это сделать через NServiceBus API?
Также вы будете обрабатывать параллелизм через MSMQ или через приложение пользовательского интерфейса?
Ваше здоровье