{site_name}

{site_name}

🌜 搜索

Python 中的 Task Cancellation 指的是取消正在运行的协程任务

Python 𝄐 0
python task wueue,python task group 框架 指定 wroker,python taskkill,python taskflow,python task作业,python task对象
Python 中的 Task Cancellation 指的是取消正在运行的协程任务。在协程中使用 asyncio 库提供的 cancel() 方法可以取消正在运行的任务,该方法会向协程任务发送一个 CancelledError 错误,以便让任务能够正确地处理取消请求。

例如,下面的代码演示了一个无限循环的协程,它每秒输出一次当前时间,并等待 1 秒钟:

python
import asyncio
import datetime

async def print_time():
while True:
print(datetime.datetime.now())
await asyncio.sleep(1)

async def main():
task = asyncio.create_task(print_time())
await asyncio.sleep(5)
task.cancel()

asyncio.run(main())


在上述代码中,我们创建了一个名为 print_time 的协程,然后将其作为一个任务添加到事件循环中。接着,我们等待了 5 秒钟之后,使用 task.cancel() 方法来取消正在运行的任务。当任务被取消时,它会抛出 CancelledError 异常,我们可以在协程中捕获这个异常并进行相应的处理。