Key Highlights
QoS Max Prefetch Limit #2348
Prevent Out Of Memory crashes when queues flood with ETA/countdown tasks. The new optional max_prefetch parameter caps how many messages workers hold in memory. Defaults to unlimited (None) to preserve existing behavior.
from kombu.common import QoS
# Limit prefetch to maximum 100 messages
qos = QoS(callback=consumer.qos, initial_value=10, max_prefetch=100)Redis Polling Interval Support #2346
Fix Redis transport to properly propagate polling_interval and brpop_timeout from transport_options to the Channel's _brpop_start timeout.
app.conf.broker_transport_options = {"polling_interval": 10}Leave it unset to keep the familiar 1-second default, or raise it to slow down idle polling.
Pidbox RabbitMQ 4.x Compatibility #2338
Let pidbox queues work on RabbitMQ 4.x brokers that reject transient, non-exclusive queues.
MongoDB Transport Improvements #2347
URI options now come through lowercase and flattened again, so settings like replicaSet=test_rs show up as options['replicaset'].
Resource Pool Gevent Compatibility #2314
Restore compatibility with recent gevent releases that monkey-patch the standard library queue.
Timezone-aware UTC Timestamps #2355
Replace every usage of datetime.utcnow() with datetime.now(timezone.utc) to return timezone-aware UTC datetimes.
Redis Client Name Support #2367
Support for propagating the client_name connection parameter through the Redis transport (including Sentinel) so that connections appear with meaningful names in monitoring tools.
What's Changed
Since v5.6.0rc2
- Test on Python 3.14 by @cclauss in #2361
 - Revert "Revert "Bump pymongo from 4.10.1 to 4.15.3"" by @auvipy in #2401
 - Prepare for release: v5.6.0 by @Nusnus in #2402
 
Since v5.5.4
- Revert "Feature: urllib3 instead of curl" by @auvipy in #2261
 - Fix #2286 : SQS - Enhance support for receiving message attributes. Allow string in msg body. by @thejones in #2300
 - Update gcpubsub.txt for protobuf by @auvipy in #2320
 - fix body bytes encoding in curl.py by @auvipy in #2322
 - Hotfix(aws_ssl): validate secure connection by @spawn-guy in #2323
 - Update setup.py to remove deprecation warning by @auvipy in #2298
 - Update protobuf to 5.29.5 by @pyup-bot in #2199
 - Allow setting 
tagsin initialboto3.sqs.create_queuecall viatransport_optionsby @akosel in #2321 - Add sts_token_buffer_time parameter to transport options by @eisichenko in #2216
 - Docs: Fix incorrect "added in 5.6.0" note for sts_token_timeout in SQS transport docs by @eisichenko in #2327
 - SQS: when redelivering a message apply visibility timeout based on wait_time_seconds (long polling time) by @pbudzon in #2049
 - Bump redis requirement to <6 to support v5.3 by @nsoranzo in #2329
 - Pidbox: support queue_exclusive / queue_durable (RabbitMQ 4.x) by @ghirailghiro in #2338
 - Prepare for (pre) release: v5.6.0b1 by @Nusnus in #2343
 - Normalize mongodb options keys by @ghirailghiro in #2347
 - Redis: propagate polling_interval from transport options to _brpop_start timeout by @ghirailghiro in #2346
 - Add max_prefetch limit to QoS class and related tests by @sashu2310 in #2348
 - Prepare for (pre) release: v5.6.0b2 by @Nusnus in #2349
 - Remove custom 
LifoQueueclass conflicting with recent gevent by @olii in #2314 - Replace deprecated datetime.utcnow() with datetime.now(timezone.utc) by @TheWesDias in #2355
 - Prepare for (pre) release: v5.6.0b3 by @Nusnus in #2359
 - Bump mypy from 1.14.1 to 1.18.1 AGAIN by @cclauss in #2363
 - Remove nested query from sqlalchemy _size by @ddelange in #2315
 - Remove misused argument for autoflake by @mdalp in #2368
 - Support client_name connection parameter for redis transport by @mdalp in #2367
 - Prepare for (pre) release: v5.6.0rc1 by @Nusnus in #2369
 - Update Redis version constraint to <6.2 by @auvipy in #2377
 - remove Python 3.8 from CI as EOL by @auvipy in #2241
 - Revert "Bump pymongo from 4.10.1 to 4.15.3" by @auvipy in #2384
 - Update requirements to remove backports.zoneinfo by @auvipy in #2391
 - Update qpid-python and qpid-tools versions by @auvipy in #2392
 - Remove Qpid transport from requirements of func test by @auvipy in #2393
 - Fix comment grammar in entity_name test by @auvipy in #2394
 - Prepare for (pre) release: v5.6.0rc2 by @Nusnus in #2396
 - Test on Python 3.14 by @cclauss in #2361
 - Revert "Revert "Bump pymongo from 4.10.1 to 4.15.3"" by @auvipy in #2401
 - Prepare for release: v5.6.0 by @Nusnus in #2402
 
New Contributors
- @thejones made their first contribution in #2300
 - @akosel made their first contribution in #2321
 - @eisichenko made their first contribution in #2216
 - @pbudzon made their first contribution in #2049
 - @nsoranzo made their first contribution in #2329
 - @ghirailghiro made their first contribution in #2338
 - @sashu2310 made their first contribution in #2348
 - @TheWesDias made their first contribution in #2355
 - @ddelange made their first contribution in #2315
 - @mdalp made their first contribution in #2368
 
Full Changelog: v5.5.4...v5.6.0