的问题...
我正在向dask客户端提交功能并记录期货密钥。
我正在使用这些密钥以不同的方式实例化期货。
这些期货以「待定」模式叠加
from dask.distributed import Client, Future
client = Client()
def func1(client, data):
future = client.submit(some_long_function, data)
key = future.key
return key
key = func1(client, data)
def func2(key):
future = Future(key, client)
print(future) # !! Always show "pending" even when the process finished !
如何使用未来的“密钥”来获取运行状态并在完成后检索结果?
(注意:我不想使用“Future”对象本身,因为我想将此“密钥”发送到客户端javascript应用程序)
答案 0 :(得分:1)
当未来在func1
中收集垃圾时,客户端会向调度程序发送一条消息,表明它不再需要结果,因此它可能永远不会运行。您可能希望在未来致电fire_and_forget
以确保其运行,即使您没有提及未来。
请参阅以下文档: