使不和谐的机器人能够一次处理多个输入

Making a discord bot able to handle several inputs at once

这是一个非常基本的问题,但问题就在这里。我正在尝试制作一个不和谐的机器人,它接收一条消息并将其延迟一段时间。但是,它一次只能处理一条消息,并且在该消息通过之前不会延迟任何其他消息。有没有办法让机器人可以一次处理所有消息? 这是函数的代码

@client.event
async def on_message(message):
    if not message.author.bot:
        await message.delete()
        time.sleep(100)
        await message.channel.send('{} : {}'.format(message.author.name,
                                                    message.content))
        await client.process_commands(message)

这是因为 time.sleep() 会阻止代码并几乎停止一切工作,直到时间设置到期。你要用的是asyncio.sleep()

import asyncio

@client.event
async def on_message(message):
    if not message.author.bot:
        await message.delete()
        await asyncio.sleep(100)
        await message.channel.send('{} : {}'.format(message.author.name,
                                                    message.content))
        await client.process_commands(message)

asyncio.sleep() 仍然允许您做您打算做的事情,但也允许机器人继续工作并接受更多 requests/tasks.