Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取有关特定Dask任务的信息_Python_Distributed_Dask - Fatal编程技术网

Python 如何获取有关特定Dask任务的信息

Python 如何获取有关特定Dask任务的信息,python,distributed,dask,Python,Distributed,Dask,我遇到了一个问题,即我的分布式集群似乎“挂起”-例如,任务停止处理,因此未处理的任务积压,因此我正在寻找一些方法来帮助调试正在发生的事情 在客户机上有处理方法,该方法将告诉我每个工人当前正在运行哪些任务,但AFAICS是客户机对象上可用的关于任务的唯一信息 我希望能够查询的不仅仅是处理任务,还有所有任务,包括已处理、正在处理和出错,并且每个任务能够获得一些统计信息,例如submitted\u time和completion\u time,这将允许我找出阻止集群的任务 这类似于服务器上的扩展元数据

我遇到了一个问题,即我的分布式集群似乎“挂起”-例如,任务停止处理,因此未处理的任务积压,因此我正在寻找一些方法来帮助调试正在发生的事情

客户机
上有
处理
方法,该方法将告诉我每个工人当前正在运行哪些任务,但AFAICS是
客户机
对象上可用的关于任务的唯一信息

我希望能够查询的不仅仅是处理任务,还有所有任务,包括已处理、正在处理和出错,并且每个任务能够获得一些统计信息,例如
submitted\u time
completion\u time
,这将允许我找出阻止集群的任务

这类似于服务器上的扩展元数据

一个很好的选择就是能够获得任何给定任务的
args/kwargs
。这对于调试失败的任务尤其有用

这些功能目前是否可用,或者是否有任何方法可以获取我想要的信息


任何关于如何调试该问题的其他建议都将受到极大欢迎。

截至2017年5月,不存在明确的“向我提供有关任务的所有信息”操作。但是,您可以使用客户端直接调查任务状态。这需要您深入了解调度程序和工作程序跟踪的信息。请参见以下文档页面:

要查询此状态,我将使用和方法。它们分别在调度程序或工作程序上运行一个函数。如果此函数包含
dask_调度程序
dask_工作者
参数,则该函数将被赋予调度程序或工作者对象本身

def f(dask_scheduler):
    return dask_scheduler.task_state

client.run_on_scheduler(f)
现在,您可以检查计划程序或工作程序知道的任何状态,并运行任何内部诊断检查。不过,您选择调查什么完全取决于您的用例

def f(keys, dask_scheduler=None):
    return dask_scheduler.transition_story(*keys)

client.run_on_scheduler(f, [key1, key2, key3])

看起来应该是:
def(键,dask_调度程序):返回dask_调度程序。转换故事(*键)
谢谢@DaveHirschfeld。FixedIt看起来您现在必须调用
dask_调度程序;看见