Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update channels-redis to 4.1.0 #1120

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant