【发布时间】:2020-03-13 16:34:40
【问题描述】:
我有一个监听特定端口的异步函数。我想一次在几个端口上运行该函数,当用户想停止在特定端口上侦听时,停止在该端口上侦听的函数。
以前我使用 asyncio 库来执行此任务,我通过创建具有唯一 ID 作为名称的任务来解决此问题。
asyncio.create_task(Func(), name=UNIQUE_ID)
由于 trio 使用nurseries 来生成任务,我可以使用nursery.child_tasks 查看正在运行的任务,但这些任务无法命名它们,甚至无法按需取消任务
TL;DR
由于 trio 没有取消特定任务的 cancel() 函数,我该如何手动取消任务。
【问题讨论】:
标签: python python-asyncio python-trio