【发布时间】:2021-05-14 06:09:39
【问题描述】:
Discord 将机器人限制为每台服务器每 5 秒执行 5 次操作 - 因此,机器人尽可能快地响应紧急事务非常重要,即使这意味着降低其他事情的优先级。
我第一次尝试处理这个是这两个命令(特别是第一个使用时间模块)
@bot.command()
async def low_priority_count(ctx, num: int):
for i in range(num):
time.sleep(1)
await ctx.send("low priority "+str(i))
@bot.command()
async def high_priority_count(ctx, num: int):
for i in range(num):
await ctx.send("high priority "+ str(i))
bot.run(TOKEN)
我的想法是,如果您调用 $high_priority_count 20,则循环将快速发送包含数字 0-19 的消息,尽管 discord 需要一些时间才能将它们打印出来。因此,我预计如果您调用 $low_priority_count 20,您会在高优先级消息之后收到低优先级消息。
相反,您可以将它们夹杂在一起。这是文本频道上消息的附加版本:
User: $high_priority_count 20
Bot: high priority 0
high priority 1
high priority 2
...
high priority 9
User: $low_priority_count 20
Bot: high priority 10
low priority 0
high priority 11
low priority 1
high priority 12
low priority 2
...
high priority 19
low priority 9
low priority 10
low priority 11
low priority 12
...
low priority 20
为什么机器人会一起发送消息?有没有办法确保在发送低优先级消息之前先发送高优先级消息?
【问题讨论】:
标签: discord.py