【问题标题】:Efficient Way to Run Multiple Instances of the Same Discord Bot (Discord)运行同一 Discord Bot (Discord) 的多个实例的有效方法
【发布时间】:2020-07-02 13:45:44
【问题描述】:

我有一个 Discord 机器人,我和朋友在服务器上使用。

问题是一些命令使用网络抓取来检索机器人响应,因此在机器人完成检索答案之前,机器人无法使用/无法处理新命令。

我想在我的主机服务器上运行同一个机器人的多个实例来处理这个问题,但不知道如何告诉我的代码“如果机器人 1 正忙于命令,请使用机器人 2 来回答命令”

任何帮助将不胜感激!

【问题讨论】:

  • Python Discord 实现不是天生异步的吗?您的抓取代码是以异步方式编写的还是阻塞的?您可以简单地使用通道/...实例作为参数启动一个后台线程,以便在线程完成其工作时将结果发回吗?这可能比启动 N 个机器人并仍然挂在 N+1 个请求上更有效。否则,您可以查看:AutoShardedClient。或者这个答案:stackoverflow.com/a/57558006/9360161

标签: python bots discord


【解决方案1】:

解决方案是一种称为异步代码的东西。 这允许机器人获取答案并执行其他操作,例如在执行下一个命令之前等待新命令。

https://docs.python.org/3/library/asyncio.html

我推荐 asyncio 的 python 库。

【讨论】:

    【解决方案2】:

    异步函数 myFunction () {}

    这应该可以解决您的问题

    线程可以有多个实例, 但这只是一种更简单的方法

    【讨论】:

    • 请在您的答案中添加更多描述。它并没有真正澄清它。
    猜你喜欢
    • 2021-07-13
    • 2021-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 2020-08-17
    相关资源
    最近更新 更多