[英]How to find why a task fails in dask distributed?
我正在使用dask.distributed
开发分布式计算系统。 我使用Executor.map
函数提交给它的任务有时会失败,而其他看起来相同的任务会成功运行。
该框架是否提供了任何诊断问题的方法?
更新失败我的意思是增加 Bokeh Web UI 中失败任务的计数器,由调度程序提供。 完成任务的计数器也会增加。
由Executor.map
运行的函数返回None
。 它与数据库通信,从其表中检索一些行,执行计算并更新值。
我map有40000多个任务,所以研究日志有点乏味。
如果任务失败,则任何检索结果的尝试都将引发与工作线程相同的错误
In [1]: from distributed import Client
In [2]: c = Client()
In [3]: def div(x, y):
...: return x / y
...:
In [4]: future = c.submit(div, 1, 0)
In [5]: future.result()
<ipython-input-3-398a43a7781e> in div()
1 def div(x, y):
----> 2 return x / y
ZeroDivisionError: division by zero
但是,其他事情可能会出错。 例如,您的工作人员上可能没有与客户端上相同的软件,或者您的网络可能不允许连接通过,或者现实世界网络中发生的任何其他事情。 为了帮助诊断这些,有几个选项:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.