python - 运行与 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))
解决方案
推荐阅读
- java - 不同的条形颜色 JavaFX 图表
- function - 无法使用静态访问访问 Flutter Instance 成员“结果”
- python - 如何根据条件分配多个类别
- mongodb - 从 mongodb 的文档中获取匹配的数组元素
- c# - 在开始时跳过 Form.SizeChanged 事件
- python - 尝试生成某些报告时出现名称错误
- intellij-idea - 如何在 IntelliJ 控制台中为 SQL 语法着色?
- windows - 什么可能导致 grpc exec_ctx starting_cpu 成为垃圾值?
- sql - 在 SQL 中按另一表中的值过滤一个表
- flutter - I/eatherforecast(19501):等待阻塞的 GC ProfileSaver