Первое сообщение не приходит через служебную шину MSMQ / MassTransit - PullRequest
2 голосов
/ 17 февраля 2012

У меня MassBransit ServiceBus, работающий через MSMQ. Похоже, что первое сообщение, отправленное по шине, не приходит, но последующие сообщения приходят?

Есть ли какая-то инициализация, которую необходимо выполнить в очереди или на шине перед отправкой сообщения?

1 Ответ

3 голосов
/ 18 февраля 2012

Это зависит от нескольких настроек, сколько времени нужно системе, чтобы все правильно настроилось.Если только первое сообщение не может оказаться в нужном месте, то, вероятно, данные подписки еще не распространены повсеместно.http://readthedocs.org/docs/masstransit/en/develop/overview/subscriptions.html

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

Если вы используете услугу подписки, то это также может занять пару секунд, чтобы получить данные везде.Он должен пройти через службу подписки, но подписка отправляется всем на автобусе.Это связано с БД SQL, и задержка на БД может повлиять на это время.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...