繁体   English   中英

从原始 function 中获取 dask 延迟对象/任务的名称?

[英]get the name of the dask delayed object/task from within the original function?

假设我有一些 function

def f(x):
    y = ... # do something
    return y

然后我延迟并计算:

result = dask.delayed(f, name='Jim')(x, dask_key_name='Jim')
result.compute()

是否有可能从f中得到Jim的名字? 我可以向工作人员询问与当前任务关联的密钥吗?

我找到了这篇旧帖子,以下内容让我得到了一些可能有用的东西,但它不是Jim ,它是由 dask 生成的:

import dask.distributed
dask.distributed.worker.thread_state.key # Not "Jim"

这是一种方法:

def f(x):
    return dask.distributed.get_worker().get_current_task()

d = dask.delayed(f)(0, dask_key_name="Jim")
assert d.compute() == 'Jim'

它在内部使用active_threads属性来查找与当前线程关联的任务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM