NServicebus приближается к нескольким очередям - PullRequest
0 голосов
/ 19 марта 2019

Мы обрабатываем кучу сообщений в одной очереди, все выглядит хорошо. Несколько обработчиков, которые позаботятся об этом. Но теперь мы подошли к случаю, что нам нужно обрабатывать сообщения, поступающие от одного пользователя, синхронно. в начале сообщения я не знаю, что и будут ли приходить новые сообщения от этого пользователя.

Итак, вариант использования; - пользователь 1 завершает шаг 1 => 3 задачи должны выполняться синхронно. - пользователь один завершает шаг 2 => необходимо выполнить 5 новых задач синхронно (следя за тем, чтобы предыдущие задачи также были выполнены, поскольку возникают проблемы с синхронизацией данных). - пользователь два завершает шаг 1 => 3 задачи должны выполняться синхронно. - то же самое для шага 2.

Для всех пользователей это может быть сделано асинхронно, но в пределах одного пользователя это должно быть сделано синхронно. Возможно ли это с NServiceBus? Если да, то как и каким будет наилучший подход?

Спасибо

1 Ответ

3 голосов
/ 19 марта 2019

NServiceBus предназначен для асинхронного обмена сообщениями.Если вам необходимо обеспечить определенный порядок операций для каждого пользователя, это не будет синхронным выполнением.Вместо этого вы можете посмотреть на Saga функцию NServiceBus, которая выполняет координацию работы.Saga будет координировать работу, выполняемую другими обработчиками, и координировать шаги.

Существует также учебник , с которого можно начать с.

...