本文为您介绍任务未运行的相关问题。
使用限制
仅DataWorks生产环境运维中心支持自动调度,请确认任务是否已发布生产运维中心,任务发布,详情请参见:发布任务。
任务运行条件
运维中心通过不同状态标识区分状态类型。
正常调度任务运行需要有多个条件:调度资源、定时时间、上游节点运行状态、调度属性为正常调度(未被冻结)。
序号 | 状态类型 | 状态标识 | 运行流程图 |
---|---|---|---|
1 | 运行成功状态 | ||
2 | 未运行状态 | ||
3 | 运行失败状态 | ||
4 | 正在运行状态 | ||
5 | 等待状态 | ||
6 | 暂停/冻结状态 |
- 紫色(冻结):说明该实例被冻结了,任务将不会运行,并且阻塞下游,可以单击展开详情>操作日志,在操作记录中查看相关记录。
- 黄色(等待):等待任务定时时间,单击右下角展开详情,在属性中查看相关信息。说明
- 出现等待资源状态,说明当前项目下正在运行的任务达到上限,可以右键实例在运行诊断的调度资源部分查看任务等待资源时,哪些任务正在占用资源,详情请参见等待资源。
- 出现等待时间状态,说明当前实例定时时间还未到。
- 灰色(未运行):需右键灰色实例,查看上游父节点的状态。建议使用运行诊断和上游分析。
- 蓝色(运行中):说明实例正在运行,但任务若长时间未运行成功,详情请参见等待资源。说明 上游没有出现以上任何一种状态,整个业务流程均为灰色,说明上游依赖关系变动导致业务流程都被孤立。详情请参见场景:节点孤立。
任务到定时时间,为什么还没运行?
- 问题现象
在周期实例运行时,实例定时时间和实例开始运行时间有时并不完全一致,或任务到了定时时间还没运行。
- 问题排查DataWorks上任务未运行通常有4种情况,通过以下示例进行分析说明。以下图示为三层依赖,实际场景可能不止三层,但逻辑一样。
- 场景一:该节点所有依赖的父节点还未运行成功(未运行节点状态:灰色)。
场景:假设当前时间为1点,A2任务定时时间为1点,A3定时时间为3点,B定时时间为0点,B任务依赖A2、A3节点。
分析:下游B节点定时时间为0点,此时已经到了任务定时时间,但由于上游父节点定时时间未到,所以下游节点B需要等到上游父节点A2,A3定时时间到了并且任务执行成功后,B任务才会执行。如果上游A2、A3任务有一个失败,那下游B任务将不会调度起来。所以B任务当前的实例状态为未运行。
结论:当该节点所有的依赖的父节点都已经运行完成时,当前节点才会运行。
说明 若上游一直处于运行中的状态,您可以参考以下解决方案。- 非离线同步任务一直处于运行中的状态,如果需要查看具体原因您可以单击申请链接或扫描下方二维码加入DataWorks钉钉交流群进行售前售后咨询,咨询可直接@智能机器人,值班时间段内也可直接联系值班人员。DataWorks钉钉交流群二维码如下。
- 离线同步任务一直处于运行中的状态,可能处于长时间等待任务执行资源,或实际运行过程中部分逻辑处理较慢,详情请参见如何排查离线同步任务运行时间长的问题。
- 任务定时时间未到(等待时间节点状态:黄色)。
场景:假设当前时间为4点,A2任务定时时间为1点,A3定时时间为3点,B定时时间为5点,B任务依赖A2、A3节点。
分析:下游B节点定时时间为5点,父节点A2、A3都已经执行成功,但由于B任务还未到定时时间,所以B任务当前的实例状态为等待时间。
结论:任务定时时间已到,当前节点才会运行。
- 项目下没有足够的调度资源可让任务运行(等待资源节点状态:黄色)。
场景:假设当前时间为4点,A2任务定时时间为1点,A3定时时间为3点,B定时时间为0点,B任务依赖A2、A3节点。
分析:下游B节点定时时间为0点,父节点A2、A3都已经执行成功,但由于当前B节点使用的调度资源组下资源不够,导致任务没有调度资源,所以B任务当前的实例状态为等待资源。
结论:工作空间调度资源充足时,任务才会运行。(等待资源状态时,日志中显示当前项目下任务并发达到上限,正在等待gateway资源)
说明 如果任务运行在独享调度资源组,您可以在DataWorks控制台查看独享调度资源组,通过资源组使用率查看资源组下正在执行的任务及资源组水位,或者右键实例使用智能诊断功能,查看当前任务在等待资源时,哪些任务正在占用资源,详情请参见,等待资源。 - 任务被冻结(任务被冻结节点状态:紫色)。
场景:假设当前时间为4点,A2任务定时时间为1点,节点状态为暂停调度,A3定时时间为3点,B定时时间为0点,B任务依赖A2、A3节点。
分析:通过第一条可知,当前节点执行需要父节点全都执行成功,由于左侧图中A2节点是冻结状态,所以下游B节点不会执行。右侧图,父节点都执行成功,但由于冻结节点不会调度,所以右侧图B节点不会执行。
结论:父节点被冻结或当前节点被冻结,任务将不会运行。
- 场景一:该节点所有依赖的父节点还未运行成功(未运行节点状态:灰色)。