From 5faa0c74b1a1ee4e1f895f53b0c27ed2190ce463 Mon Sep 17 00:00:00 2001 From: Michael Klishin Date: Tue, 11 May 2021 19:30:23 +0300 Subject: [PATCH] Document consumer acknowledgement timeout now that 3.8.15 has finally introduced a default. References rabbitmq/rabbitmq-server#2990, rabbitmq/rabbitmq-server#3032 --- site/consumers.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/site/consumers.md b/site/consumers.md index 28da77b941..181173f18f 100644 --- a/site/consumers.md +++ b/site/consumers.md @@ -382,6 +382,30 @@ See [Java client guide](/api-guide.html#getting) for examples. See [.NET client guide](/dotnet-api-guide.html#basic-get) for examples. +## Delivery Acknowledgement Timeout + +In modern RabbitMQ versions, a timeout is enforced on consumer delivery acknowledgement. +This helps detect buggy (stuck) consumers that never acknowledge deliveries. +Such consumers can affect node's on disk data compaction and potentially drive +nodes out of disk space. + +If a consumer does not ack its delivery for more than the timeout value (15 minutes by default), +its channel will be closed with a `PRECONDITION_FAILED` channel exception. +The error will be [logged](logging.html) by the node that the consumer was +connected to. + +The timeout value is configurable in [`rabbitmq.conf`] (in milliseconds): + +
+# 15 minutes in milliseconds
+consumer_timeout = 900000
+
+ +
+# one hour in milliseconds
+consumer_timeout = 3600000
+
+ ## Exclusivity When registering a consumer with an AMQP 0-9-1 client, [the `exclusive` flag](amqp-0-9-1-reference.html#basic.consume)