AutoShardedBot 在discord.py 中如何工作?

L D*_*L D 5 python sharding discord.py

有人能具体解释一下分片是如何工作的吗discord.ext.commands.AutoShardedBot?我在下面提出了多个问题:

  • 它是否在多个服务器上运行?
  • 如果不是,那么对其进行分片有何好处?
  • 公会有时会在分片之间切换吗?
  • 如果机器人在多台服务器上运行,我如何使用一个数据库?

谢谢你的时间。

Jaw*_*wad 4

  1. 如果“多个服务器”指的是物理机,不,它是一个 python 实例。
  2. Discord 需要分片超过 2500 个公会。
  3. 公会分配给分片的方式为(guild_id >> 22) % shard_count
  4. 使数据库可以通过网络访问,确保使用强密码保护它,并从每个数据库连接到它。

如果您需要将其拆分到多台机器上,您可以将shard_id和传递shard_count给普通Bot实例。

关于分片的 Discord 文档