【问题标题】:Asyncpg pool randomly stops respondingAsyncpg 池随机停止响应
【发布时间】:2019-01-06 14:56:26
【问题描述】:

我为我的 discord.py 机器人使用了Pool,但正如我在标题中所说,它随机停止响应。使用池的命令不起作用,但其他命令起作用,而且我确信我在使用它们后会关闭所有连接。我尝试在谷歌上搜索,但没有找到任何东西

这是我创建池的方法:

self.pg_pool:asyncpg.pool.Pool = await asyncpg.create_pool(DSN, 
                                     max_inactive_connection_lifetime=3600.0)

编辑:我认为这些信息还不够,我决定添加一些内容。 我没有任何异常或错误。 我想可能是因为池的生命周期并将其更改为0(禁用该机制),但这不起作用

【问题讨论】:

  • 您在运行机器人的终端中是否看到任何错误消息?
  • 无异常或错误

标签: asyncpg python python-3.x discord.py asyncpg


【解决方案1】:

并不需要使用像async with pool.acquire() as conn 这样的上下文管理器来获取连接。完全可以conn = await pool.acquire()...

...也就是说,您为什么希望连接持续那么长时间?我认为您的问题属于架构方面,而不是代码本身。我想不出有什么理由让数据库连接保持打开那么久。

【讨论】:

    【解决方案2】:

    我向 asyncpg 的开发人员提出了一个问题,发现必须使用 async with pool.acquire() as conn: 打开池连接才能正确关闭它们。希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2022-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-01
      相关资源
      最近更新 更多