From 4cfc2ea221d949a5d6dd29696e6e0f99041ddbd6 Mon Sep 17 00:00:00 2001 From: "shangkun.yu" Date: Wed, 16 Nov 2022 13:50:03 +0800 Subject: [PATCH] fix: django conf should not be modified --- channels_redis/core.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/channels_redis/core.py b/channels_redis/core.py index 7c04ecd..b722d03 100644 --- a/channels_redis/core.py +++ b/channels_redis/core.py @@ -11,7 +11,7 @@ import msgpack from redis import asyncio as aioredis - +from copy import deepcopy from channels.exceptions import ChannelFull from channels.layers import BaseChannelLayer @@ -132,13 +132,14 @@ def create_pool(self, index): if "address" in host: return aioredis.ConnectionPool.from_url(host["address"]) elif "master_name" in host: - sentinels = host.pop("sentinels") - master_name = host.pop("master_name") - sentinel_kwargs = host.pop("sentinel_kwargs", None) + host_kwargs = deepcopy(host) + sentinels = host_kwargs.pop("sentinels") + master_name = host_kwargs.pop("master_name") + sentinel_kwargs = host_kwargs.pop("sentinel_kwargs", None) return aioredis.sentinel.SentinelConnectionPool( master_name, aioredis.sentinel.Sentinel(sentinels, sentinel_kwargs=sentinel_kwargs), - **host + **host_kwargs ) else: return aioredis.ConnectionPool(**host)