任务已销毁,但每个请求都处于待处理状态

时间:2020-08-22 04:06:26

标签: python-3.x python-asyncio

我在每个请求中都开始一个新的循环,当我手动终止服务时遇到错误。

ERROR:asyncio:Task was destroyed but it is pending!
task: <Task pending name='Task-192' coro=<AsyncioContextBase._run() running at C:\ProgramData\Anaconda3\lib\site-packages\caio\asyncio_base.py:54> wait_for=<Future cancelled>>

这是我的代码:

loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
c = doSomething( maxtasks=100)
loop.run_until_complete(c.run())
try:
loop.stop()
loop.close()
print('done:')
except RuntimeError:
print('errr:')  

我还尝试使用下面的代码在关闭循环之前获取所有待处理的任务,以便我可以在关闭之前关闭所有任务,但是我得到了“ RuntimeError:无正在运行的事件循环” < / p>

pending = asyncio.all_tasks()

有人可以告诉我循环结束后如何杀死所有这些任务。我不希望这些循环在后台运行并占用我的全部内存

1 个答案:

答案 0 :(得分:0)

假设您在doSomething()中使用caio。 这对caio来说对我有用:

loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
context = caio.AsyncioContext(16, loop=loop)
loop.run_until_complete(main(context))
context.close()
相关问题