Skip to content

Conversation

@pyup-bot
Copy link
Collaborator

This PR updates channels-redis from 2.4.0 to 4.1.0.

Changelog

4.1.0

------------------

* Adjusted the way Redis connections are handled:

* Connection handling is now shared between the two, core and pub-sub, layers.

* Both layers now ensure that connections are closed when an event loop shuts down.

 In particular, redis-py 4.x requires that connections are manually closed.
 In 4.0 that wasn't done by the core layer, which led to warnings for people
 using `async_to_sync()`, without closing connections when updating from
 3.x.

* Updated the minimum redis-py version to 4.5.3 because of a security release there.
Note that this is not a security issue in channels-redis: installing an
earlier version will still use the latest redis-py, but by bumping the
dependency we make sure you'll get redis-py too, when you install the update
here.

4.0.0

projects.

* Migrated from ``aioredis`` to ``redis-py``. Specifying hosts as tuples is no longer supported.
If hosts are specified as dicts, only the ``address`` key will be taken into account, i.e.
a `password`` must be specified inline in the address.

* Added support for passing kwargs to sentinel connections.

* Updated dependencies and obsolete code.

3.4.1

------------------

* Fixed RuntimeError when checking for stale connections.

3.4.0

------------------

* Dropped support for Python 3.6, which is now end-of-life, and added CI
testing for Python 3.10. (301).

* Added serialize and deserialize hooks to RedisPubSubChannelLayer (281).

* Fixed iscoroutine check for pubsub proxied methods (297).

* Fix workers support when using Redis PubSub layer (298)

3.3.1

------------------

Two bugfixes for the PubSub channel layer:

* Scoped the channel layer per-event loop, in case multiple loops are in play
(262).

* Ensured consistent hashing PubSub was maintained across processes, or process
restarts (274).

3.3.0

------------------

Two important new features:

* You can now connect using `Redis Sentinel
<https://redis.io/topics/sentinel>`. Thanks to qeternity.

* There's a new ``RedisPubSubChannelLayer`` that uses Redis Pub/Sub to
propagate messages, rather than managing channels and groups directly within
the layer. For many use-cases this should be simpler, more robust, and more
performant.

Note though, the new ``RedisPubSubChannelLayer`` layer does not provide all
the options of the existing layer, including ``expiry``, ``capacity``, and
others. Please assess whether it's appropriate for your needs, particularly
if you have an existing deployment.

The ``RedisPubSubChannelLayer`` is currently marked as *Beta*. Please report
any issues, and be prepared that there may be breaking changes whilst it
matures.

The ``RedisPubSubChannelLayer`` accepts ``on_disconnect`` and
``on_reconnect`` config options, providing callbacks to handle the relevant
connection events to the Redis instance.

Thanks to Ryan Henning acu192.

For both features see the README for more details.

3.2.0

------------------

* Adjusted dependency specifiers to allow updating to the latest versions of
``asgiref`` and Channels.

3.1.0

------------------

* Ensured per-channel queues are bounded in size to avoid a slow memory leak if
consumers stop reading.

Queues are bound to the channel layer's configured ``capacity``. You may
adjust this to a suitably high value if you were relying on the previously
unbounded behaviour.

3.0.1

------------------

* Fixed error in Lua script introduced in 3.0.0.

3.0.0

------------------

* Redis >= 5.0 is now required.

* Updated msgpack requirement to `~=1.0`.

* Ensured channel names are unique using UUIDs.

* Ensured messages are expired even when channel is in constant activity.

* Optimized Redis script caching.

* Reduced group_send failure logging level to reduce log noise.

* Removed trailing `:` from default channel layer `prefix` to avoid double
`::` in group keys. (You can restore the old default specifying
`prefix="asgi:"` if necessary.)

2.4.2

------------------

* Fixed a bug where ``ConnectionPool.pop()`` might return an invalid
connection.

* Added logging for a group_send over capacity failure.

2.4.1

------------------

* Fixed compatibility with Python 3.8.
Links
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants