首页 > 解决方案 > 运行与 main 分离的异步函数

问题描述

是否可以运行与主循环分离的函数?

这样做的原因是我有一个函数,每次发送消息时都会运行,如果我从它操作命令,它会一直保持到该命令完成,然后退出函数并允许新消息进入。所以我需要把它从主循环中分离出来,让它自己运行,直到它完成。

我尝试异步运行它, loop.create_task(run_command(input))但它仍然等待命令完成,然后退出包含函数,在此期间不允许输入。

这是一个基本的例子

@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith(Config.prefix):
        loop = asyncio.get_event_loop()
        if command in commands.List:
            loop.create_task(getattr(commands, command)().call(message))

标签: pythonpython-3.xpython-asynciodiscord.py

解决方案


推荐阅读