如何解决AutoShardedBot在discord.py中如何工作?
有人会解释分片的工作原理,特别是discord.ext.commands.AutoShardedBot
吗?
我在下面提出了多个问题:
- 它可以在多台服务器上运行吗?
- 如果没有,将其分片有什么好处?
- 公会有时在碎片之间切换吗?
- 如果漫游器在多台服务器上运行,如何使用一个数据库?
感谢您的时间。
解决方法
- 如果用“多个服务器”表示物理机,不,这是一个 单个python实例。
- 我认为Discord需要经过一定数量的行会分片 2 / 2.5k。
- 公会由
(guild_id >> 22) % shard_count
分配给分片 - 使数据库可通过网络访问,请确保对其进行保护 并使用强密码,从每个密码连接。
如果需要将其拆分为多台计算机,则可以将shard_id
和shard_count
传递给普通的Bot
实例。
我最初担心的是commands.AutoShardedBot
将是多线程的,并且我的锁定方法不是线程安全的。 commands.AutoShardedBot
原来不是线程的,只是commands.Bot
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。