2016-07-25 2 views

ответ

3

Azure Service Bus позволяет просматривать сообщения.

Например, вы можете использовать QueueClient.PeekAsync() для просмотра сообщений из очереди. Существует эквивалент для topics и subscriptions.

Если вам не нужно различать сообщения из очередей и подписки, есть опция MessageReceiver.PeekAsync().

+0

спасибо за ответ. В любом случае, чтобы отправитель знал, что сообщение было прочитано? – Homam

+0

Peeking сообщения не изменяют сообщение. Если вы считаете, что сообщение было потреблено (как в прочитанном), это будет за пределами ответственности брокера. В этом случае я бы сказал, что ваш потребитель должен ответить производителю или каким-то образом указать, что сообщение обработано. Посмотрите на NServiceBus или MassTransit, которые могут помочь вам в таких сценариях. –

+0

Спасибо! Мой случай с темой ServiceBus заключается в том, что у меня много подписчиков (неизвестно, сколько), и все они должны получать сообщение. Мне нужно, чтобы в отправителе указывалось, что сообщение было использовано всеми из них. Я знаю, что сообщение больше не будет активным после его потребления от всех клиентов, но как узнать это в стороне отправителя? продолжайте пытаться извлечь его каждые несколько секунд, и как только он исчезнет, ​​он будет уничтожен? это единственный способ? – Homam

Смежные вопросы