首页 > 解决方案 > 水平缩放 discord.py

问题描述

我希望让我的 discord.py 机器人水平扩展以获得额外的可靠性。

我知道像 AutoShardedClient 这样的东西,这将是一个很好的方法,但我不确定它是否可以跨多个实例工作。有没有一种相当简单的方法可以让它工作?如果是这样,你能给我一些建议吗?

扩展硬件很好,我已经准备好了,我只需要一些方法让机器人自己分片,然后确保每个公会只分配一个分片,不管机器人实例的数量我在跑。

标签: pythondiscorddiscord.py

解决方案


是的。

# Instance one
mybot = commands.AutoShardedBot(shard_count=8, shard_ids=[0, 1, 2, 3], ...)
mybot.run(token)
# Instance two
mybot = commands.AutoShardedBot(shard_count=8, shard_ids=[4, 5, 6, 7], ...)
mybot.run(token)

分片 0、1、2 和 3 将在第一个实例上运行,另外 4 个在第二个实例上运行。这段代码不是你应该怎么做的,但它演示了一般概念。


推荐阅读