problem...
-
我正在向 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 !
如何使用未来的"密钥"来获取运行状态并在完成后检索结果?
(注意:我不想使用"未来"对象本身,因为我想将此"密钥"发送到客户端javascript应用程序(
当将来在func1
中收集垃圾时,客户端会向调度程序发送一条消息,指出它不再需要结果,因此它可能永远不会运行。 你可能希望调用fire_and_forget
on the future 以确保它运行,即使你没有对未来的引用。
请参阅以下文档:
- 期货
fire_and_forget