【发布时间】:2020-07-02 13:45:44
【问题描述】:
我有一个 Discord 机器人,我和朋友在服务器上使用。
问题是一些命令使用网络抓取来检索机器人响应,因此在机器人完成检索答案之前,机器人无法使用/无法处理新命令。
我想在我的主机服务器上运行同一个机器人的多个实例来处理这个问题,但不知道如何告诉我的代码“如果机器人 1 正忙于命令,请使用机器人 2 来回答命令”
任何帮助将不胜感激!
【问题讨论】:
-
Python Discord 实现不是天生异步的吗?您的抓取代码是以异步方式编写的还是阻塞的?您可以简单地使用通道/...实例作为参数启动一个后台线程,以便在线程完成其工作时将结果发回吗?这可能比启动 N 个机器人并仍然挂在 N+1 个请求上更有效。否则,您可以查看:AutoShardedClient。或者这个答案:stackoverflow.com/a/57558006/9360161