SpinGo / op-rabbit

The Opinionated RabbitMQ Library for Scala and Akka
Other
232 stars 73 forks source link

Messages getting stuck in retry queue even though max retry count is not met #164

Open SasikalaT opened 5 years ago

SasikalaT commented 5 years ago

Op-RabbitMQ version - op-rabbit-core_2.11-2.0.0.jar

We have in our ecosystem rabbitmq cluster with 2 nodes and close to 50 queues. The RabbitMQ consumer code is same for all the queues however for certain queues the messages get stuck in the retry queue and not move back to the main queue though the number of retries is still not met.

Below is the recovery strategy: val onAbandon: RecoveryStrategy = RecoveryStrategy.abandonedQueue(90.day, { q => s"boq.${queuename}" }, Nil, Exchange.default) implicit val redeliver: RecoveryStrategy = RecoveryStrategy.limitedRedeliver(600.second, 10, onAbandon, q => s"retry.${queuename}", Nil, Exchange.default)

Message Consumption code: channel(qos = qos) { consume(Queue.passive(queue(s"${queuename}"))) { (body(as[String]) & optionalProperty(TypedHeaderInt)) { (message, TypedHeader) =>

And while performing getMessage in RabbitMQ web plugin the Redelivery flag is solid dot for the messages that are stuck and also properties like headers: x-death : count, exchange: queue, reason: are all missing.

Kindly help on how to debug this issue further

shoumyadas commented 5 years ago

We are facing exactly similar issue.