我有 N 个像这样运行的异步任务。
import asyncio
def main(tasks):
for task in tasks:
await
asyncio.create_task(do_something(task),name=task['name'])
asyncio.run(main(tasks))
一段时间后,我只需要取消使用任务名称的特定任务。
最佳答案
您可以使用 asyncio.all_tasks()
按名称查找任务:
task, = [task for task in asyncio.all_tasks() if task.get_name() == name]
task.cancel()
请注意,get_name()
需要 Python 3.8。对于较早的 Python 版本,您可以在创建任务时维护自己的任务名称字典。
关于python - 如何按名称取消异步任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64764679/