E. Shcherbo
E. Shcherbo

Reputation: 1148

Masstransit check published messages without consumer

Is there any way to check a published message if no consumers are created? Now I just have a project which publishes events and I can see that they are published by checking exchanges created in RabbitMQ. But I'm not sure if there is a way to check the message content from the Rabbit MQ interface if there are no consumers. Maybe is it better to cover a publish logic with a unit test to check that a message with correct content is published?

Upvotes: 0

Views: 1088

Answers (2)

theMayer
theMayer

Reputation: 16167

Validation ("checking") of message content is a client function, and cannot be performed in the message queue itself. It either must be performed prior to publish (trust the publisher) or it must be performed immediately after dequeue but before processing (don't trust the publisher).

Upvotes: 0

Chris Patterson
Chris Patterson

Reputation: 33288

You can specify an alternate exchange for published messages, and those messages will be delivered to the alternate exchange if no other exchanges are bound. You can then bind that an exchange to a queue to retain those messages if there are no subscribers.

Alternatively, you can specify the Mandatory flag on the published message, and the Publish call with throw an exception if there are no exchanges bound.

Alternate Exchange Unit Test

Mandatory Unit Test

Upvotes: 1

Related Questions