zyq
zyq

Reputation: 51

Masstransit published messages disappear from queue

In process A, I'm using Bus.CreateRequestClient<TRequest> to create client then using client.GetResponse<TResponse1, TResponse12>(request) to get response from process B.

In process B I respond to the request using consumeContext.RespondAsync(@event) as well as publishing the event with consumeContext.Publish(@event)

I have a process C subscribe to the published event.

So I have process A, B and C up and running, then I stop process C. I send the request in process A and the queue for process C receives a message, but after a few seconds, the message disappear from the queue.

I've check the config the queue is configured with durable=true and autodelete=false.

If I use fire and forget (send the message to end point) instead of request/response in A, and only publish the event in B. then the message stays on the queue for C.

Is this by design? Also I noticed that if I get a message on the queue by using fire and forget, the all the messages come after stays on the queue regardless if it was created using request/response or not.

See below screenshot, during highlighted period, the messages are taken off the queue without consumer ack. Messages taken off queue without consumer ack

Upvotes: 1

Views: 539

Answers (1)

Chris Patterson
Chris Patterson

Reputation: 33540

So, as it turns out, this is a bug. The request TimeToLive is being applied to every message produced by the request consumer, which is why it eventually disappears from the queue.

Fixed

Will be released as 6.3.1 probably tonight.

Upvotes: 2

Related Questions