【发布时间】:2018-05-08 15:39:47
【问题描述】:
在设置 asyncio 未来的结果时正在打印以下消息。
Executing <Handle <TaskWakeupMethWrapper object at 0x7fc3435141f8>(<Future finis...ection.py:260>) created at /media/stuff/stuff/projects/dare/dcds/dcds/common/connection.py:221> took 1.723 seconds
我什至不知道从哪里开始寻找原因。但是如果我关闭 asyncio 调试模式,它会崩溃并显示给我。
Task was destroyed but it is pending!
task: <Task pending coro=<upload.<locals>.upload_coro() done, defined at /media/stuff/stuff/projects/dare/dcds/dcds/__main__.py:58> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fdf5df01d38>()]> cb=[_chain_future.<locals>._call_set_state() at /home/elviento/anaconda3/lib/python3.6/asyncio/futures.py:414]>
【问题讨论】:
-
我想我找到了问题所在。我将这些期货保存在 WeakValueDictionary 中。如果我用普通字典替换 WeakValueDictionary,警告和错误就会消失。我认为这可能与 WeakValueDictionary 如何破坏期货有关。
-
我要尝试一些东西。
-
我面临着类似的问题。你能解释一下到底是什么问题以及你是如何解决的。
-
@HimanshuJain 解决这个问题已经有一段时间了,但如果我没记错的话,我通过更改代码解决了它,因此它不使用弱值字典。字典没有做的期货需要正确关闭。
标签: python future python-asyncio