我想使用aioredis连接池,而不是在每个AsyncWebsocketConsumer.connect中创建新连接。我可以在哪里放置代码。
现在我每次都在connect事件中创建新的连接,像这样的代码
async def connect(self):
self.redis = await aioredis.create_redis(
'redis://localhost',encoding='utf-8')
async def disconnect(self, close_code):
await self.redis.close()
我需要使用self.channel_layer之类的东西,在每个使用者之间使用池连接。 谢谢。
答案 0 :(得分:0)
可能不是最好的解决方案,但是您可以做到
您应用的__init__.py
from asgiref.sync import async_to_sync
redis = async_to_sync(aioredis.create_redis)('redis://localhost',encoding='utf-8')
然后在您的使用者中,您可以导入并使用现有的Redis连接
from . import redis