我为discord.py机器人使用了asyncpg Pool
,但正如标题中所述,它随机停止响应。使用该池的命令不起作用,但其他命令则起作用,并且我确定我在使用它们后会关闭所有连接。我尝试在Google上搜索,但未找到任何内容
这是我创建池的方式:
self.pg_pool:asyncpg.pool.Pool = await asyncpg.create_pool(DSN,
max_inactive_connection_lifetime=3600.0)
编辑:我认为此信息还不够,因此我决定添加一些内容。
我没有例外或错误。
我以为可能是因为池的生命周期,并将其更改为0
(禁用了该机制),但这不起作用
答案 0 :(得分:0)
我向asyncpg的开发人员提出了一个问题,发现必须使用async with pool.acquire() as conn:
打开池连接才能意外地正确关闭它们。希望有帮助。
答案 1 :(得分:0)
并非真的需要使用诸如async with pool.acquire() as conn
之类的上下文管理器来获取连接。完全有可能conn = await pool.acquire()
...
...也就是说,您为什么要让连接持续这么长时间?我认为您的问题属于体系结构方面,而不是代码本身。我想不出要使数据库连接保持打开状态这么长的原因。