Single thread app is holding messages from other queue while processing one message -RMQ

45 Views Asked by At

I am facing one issue and adding the details here. I have multiple Windows services consuming RMQ queues. I am using topshelf for Windows service and EastnetQ for RMQ subscription. Prefetch count is 1 for all consumers. I am publishing the message to the queue through my web application. All are through c#.

See Overall flow diagram

My issue is that Service Shared is a single-thread application. In my case, ServiceShared is consuming one message from each queue at a time, but processing one after another. It's holding the message from each queue. But actual message processing is one by one. Due to that other individual consumers cannot process the messages.

I checked the connection and channels and I can see multiple channels for the Service shared and messages are in unack state.

See the image: how RMQ channels are unack messages

How I can avoid holding messages from other queues until the current one has finished its processing?

0

There are 0 best solutions below