4

Background: Recent changes to RabbitMQ 3.8.x have created a delivery acknowledgement timeout of 30 minutes. According to the documents, this can be overridden in the rabbitmq.conf file by setting a consumer_timeout value.

My issue: I am using the pika client library and need more than 30 minutes to process each message in my work queue. I am using a managed RabbitMQ cluster through AWS Amazon-MQ and had no issues until a few days ago, but now receive PRECONDITION_FAILED - delivery acknowledgment on channel 1 timed out. Timeout value used: 1800000 ms messages in my logs. My cluster is set up for automated minor version updates, so that's my assumption of how these changes occurred.

I understand that the point of a managed service is to hide all of these setup details from the user, but of course, now I need to change one of them. I've found that I can communicate with the remote cluster via the rabbitmqadmin CLI to perform tasks like listing queues, but I am still searching for a way to remotely edit the underlying configuration file. The only information I have for my cluster is the host (in form of b-xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.mq.us-east-1.amazonaws.com), username, and password. Does anyone know if this is possible? I'm new to the various CLI tools such as rabbitmqctl and rabbitmq-diagnostics so any help would be appreciated.

Is there any way to set the consumer_timeout value through the library or a similar workaround for pika users? I was hoping that there might be an argument to the Channel.basic_consume() function, but I also understand that this may be a cluster setting rather than something that can be set through the consumer.

First-time question asker here so I greatly appreciate any assistance and feedback on whether I've provided enough information.

Richard Wilson
  • 297
  • 4
  • 17
Mov
  • 51
  • 3

0 Answers0