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
- Bump flake8 from 7.1.2 to 7.2.0 by @dependabot[bot] in #2279
- 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
New Contributors
Full Changelog: v5.6.0b3...v5.6.0rc1