# Conditions

Conditions是一个条件节点，根据上游任务运行状态，判断应该运行哪个下游任务。截止目前Conditions支持多个上游任务，但只支持两个下游任务。当上游任务数超过一个时，可以通过`且`以及`或`操作符实现复杂上游依赖

## 创建任务

拖动工具栏中的<img src="/img/conditions.png" width="20"/>任务节点到画板中即能完成任务创建，如下图所示：

  <p align="center">
   <img src="/img/condition_dag_en.png" width="80%" />
  </p>

  <p align="center">
   <img src="/img/condition_task_zh.png" width="80%" />
  </p>

## 任务参数

- 节点名称：一个工作流定义中的节点名称是唯一的。
- 运行标志：标识这个节点是否能正常调度,如果不需要执行，可以打开禁止执行开关。
- 描述信息：描述该节点的功能。
- 任务优先级：worker线程数不足时，根据优先级从高到低依次执行，优先级一样时根据先进先出原则执行。
- Worker分组：任务分配给worker组的机器机执行，选择Default，会随机选择一台worker机执行。
- 失败重试次数：任务失败重新提交的次数，支持下拉和手填。
- 失败重试间隔：任务失败重新提交任务的时间间隔，支持下拉和手填。
- 超时告警：勾选超时告警、超时失败，当任务超过"超时时长"后，会发送告警邮件并且任务执行失败.
- 下游任务选择：目前支持两个分支，成功、失败
  - 成功：当上游运行成功时，运行成功选择的分支
  - 失败：当上游运行失败时，运行失败选择的分支
- 上游条件选择：可以为conditions选择一个或多个上游任务
  - 增加上游依赖：通过选择第一个参数选择对应的任务名称，通过第二个参数选择触发的conditions任务的状态
  - 上游任务关系选择：当有多个上游任务时，可以通过`且`以及`或`操作符实现任务的复杂关系。

## 相关任务

[switch](switch.md)：Condition节点主要依据上游节点的执行状态（成功、失败）执行对应分支。[Switch](switch.md)节点主要依据全局变量的值和用户所编写的表达式判断结果执行对应分支