【问题标题】:How does a discord bot handle events from multiple serversDiscord 机器人如何处理来自多个服务器的事件
【发布时间】:2019-08-19 03:32:06
【问题描述】:

我正在为我的服务器使用 discord.py(重写分支)开发一个不和谐机器人,我需要邀请该机器人到多个服务器并同时使用它。

我的问题是:

我是否需要为每个服务器设置一个新线程,或者机器人是否将事件排队并一一处理?如果它确实将它们排队,我应该使用它还是使用单独的线程?

对不起,如果这是一个无聊的问题,但我对 discord.py 还很陌生,我还不太明白它是如何工作的。

感谢阅读

【问题讨论】:

    标签: python discord.py-rewrite


    【解决方案1】:

    不,您只需要定义机器人将在发生某些事情时执行的回调(主要使用Client.eventBot.command)。用于侦听服务器上发生的事件的所有逻辑都已为您处理好。 See the examples directory in the discord.py project for some examples.

    如果您的机器人被广泛使用(数百台服务器),您将不得不开始使用分片,这是一个在同一机器人的多个实例之间自动分割流量的过程。您可以查看 AutoShardedClient 的文档以了解其工作原理。

    【讨论】:

    • 谢谢你的解释,现在清楚多了
    【解决方案2】:

    多进程、线程或队列都可以用来解决这个问题,每个都有各自的优点和缺点。我个人会使用线程,因为需要在每个服务器上发生的事件大多是相互独立的。

    【讨论】:

      猜你喜欢
      • 2021-03-25
      • 2021-07-01
      • 2020-10-11
      • 2017-10-02
      • 2018-10-10
      • 2020-11-10
      • 1970-01-01
      • 1970-01-01
      • 2021-04-03
      相关资源
      最近更新 更多