---
title: "dag"
date: 0001-01-01
summary: "dag #  Description #  The dag processor is used to manage the concurrent scheduling of tasks.
Configuration Example #  The following example defines a service named racing_example and auto_start is set to true. Processing units to be executed in sequence are set in processor, the dag processor supports concurrent execution of multiple tasks and the wait_all and first_win aggregation modes.
pipeline: - name: racing_example auto_start: true processor: - echo: #ready, set, go message: read,set,go - dag: mode: wait_all #first_win, wait_all parallel: - echo: #player1 message: player1 - echo: #player2 message: player2 - echo: #player3 message: player3 end: - echo: #checking score message: checking score - echo: #announce champion message: 'announce champion' - echo: #done message: racing finished The echo processor above is very simple and is used to output a specified message."
---


# dag

## Description

The dag processor is used to manage the concurrent scheduling of tasks.

## Configuration Example

The following example defines a service named `racing_example` and `auto_start` is set to true. Processing units to be executed in sequence are set in `processor`, the `dag` processor supports concurrent execution of multiple tasks and the `wait_all` and `first_win` aggregation modes.

```
pipeline:
  - name: racing_example
    auto_start: true
    processor:
    - echo: #ready, set, go
        message: read,set,go
    - dag:
        mode: wait_all #first_win, wait_all
        parallel:
          - echo: #player1
              message: player1
          - echo: #player2
              message: player2
          - echo: #player3
              message: player3
        end:
          - echo: #checking score
              message: checking score
          - echo: #announce champion
              message: 'announce champion'
    - echo: #done
        message: racing finished
```

The `echo` processor above is very simple and is used to output a specified message. This pipeline simulates a race scene, in which players 1, 2, and 3 run at the same time. After they run, the scores are calculated and the winner is announced, and finally the completion information is output. The output of the program is as follows:

```
[10-12 14:59:22] [INF] [echo.go:36] message:read,set,go
[10-12 14:59:22] [INF] [echo.go:36] message:player1
[10-12 14:59:22] [INF] [echo.go:36] message:player2
[10-12 14:59:22] [INF] [echo.go:36] message:player3
[10-12 14:59:22] [INF] [echo.go:36] message:checking score
[10-12 14:59:22] [INF] [echo.go:36] message:announce champion
[10-12 14:59:22] [INF] [echo.go:36] message:racing finished
```

## Parameter Description

| Name     | Type   | Description                                                                                                                                                                                                                                                                                   |
| -------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| mode     | string | Aggregation mode of task results. The value `first_win` indicates that the program continues further execution after any of the concurrent tasks is completed, and the value `wait_all` indicates that the program continues further execution only after all concurrent tasks are completed. |
| parallel | array  | Task array list, in which multiple subtasks are defined in sequence.                                                                                                                                                                                                                          |
| end      | array  | Task array list, which lists tasks to be executed after concurrent tasks are completed.                                                                                                                                                                                                       |

