> For the complete documentation index, see [llms.txt](https://docs.digibee.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/tools/pipeline-executor.md).

# Pipeline Executor

O conector **Pipeline Executor** faz chamadas síncronas ou assíncronas para outros pipelines que já estão implantados. Use a abordagem síncrona quando você precisar do resultado do pipeline chamado, ou a abordagem assíncrona quando não precisar esperar por ele.

## **Parâmetros**

A tabela abaixo lista todos os parâmetros de configuração do conector. Os parâmetros que suportam [expressões Double Braces](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) são marcados com ✅ na coluna **Suporta DB**.

{% tabs %}
{% tab title="General" %}

<table><thead><tr><th width="111.79998779296875">Parâmetro</th><th width="230.79998779296875">Descrição</th><th width="100">Tipo</th><th width="110.4000244140625">Suporta DB</th><th width="150.190673828125">Valor padrão</th></tr></thead><tbody><tr><td><strong>Operation</strong></td><td><code>SYNC</code> para chamadas síncronas ao pipeline e <code>ASYNC</code> para chamadas assíncronas ao pipeline.</td><td>Select</td><td>❌</td><td><code>SYNC</code></td></tr><tr><td><strong>Pipeline Name</strong></td><td>Nome do pipeline a ser chamado.</td><td>String</td><td>✅</td><td>N/A</td></tr><tr><td><strong>Version Major</strong></td><td>Versão major do pipeline a ser chamado.</td><td>Integer</td><td>✅</td><td><code>1</code></td></tr><tr><td><strong>Payload</strong></td><td>Payload a ser enviado quando o pipeline for chamado.</td><td>Any</td><td>✅</td><td><code>{{ message.body }}</code></td></tr><tr><td><strong>Timeout</strong></td><td>Tempo máximo permitido para o ciclo completo de uma chamada síncrona, desde o momento em que a mensagem é publicada até o momento em que a resposta retorna ao pipeline de origem (em milissegundos). Isso inclui qualquer tempo que a mensagem passe na fila, não apenas o tempo de execução do pipeline chamado.</td><td>Integer</td><td>✅</td><td><code>20000</code></td></tr><tr><td><strong>Expiration</strong></td><td>Tempo que a mensagem permanece na fila enquanto tenta executar o pipeline (em milissegundos).</td><td>Integer</td><td>✅</td><td><code>30000</code></td></tr><tr><td><strong>Fail On Error</strong></td><td>Se habilitado, interrompe a execução do pipeline quando ocorre um erro. Se desabilitado, a execução continua, mas a propriedade <code>"success"</code> será definida como <code>false</code>.</td><td>Boolean</td><td>❌</td><td><code>false</code></td></tr></tbody></table>
{% endtab %}

{% tab title="Documentation" %}

<table><thead><tr><th width="119.79998779296875">Parâmetro</th><th width="231.199951171875">Descrição</th><th width="100">Tipo de dado</th><th width="110.4000244140625">Suporta DB</th><th width="136.99066162109375">Valor padrão</th></tr></thead><tbody><tr><td><strong>Documentation</strong></td><td>Campo opcional para descrever a configuração do conector e quaisquer regras de negócio relevantes.</td><td>String</td><td>❌</td><td>N/A</td></tr></tbody></table>
{% endtab %}
{% endtabs %}

## **Entendendo o timeout no Pipeline Executor**

### **Como o timeout é calculado**

Em uma chamada síncrona, o valor de **Timeout** não mede apenas quanto tempo o pipeline chamado leva para executar. Ele mede todo o ciclo da mensagem:

1. O pipeline de origem envia a mensagem.
2. A mensagem espera na fila do pipeline chamada.
3. O pipeline chamado processa a mensagem.
4. A resposta volta para a fila do pipeline de origem.
5. O pipeline de origem recebe a resposta e continua.

O tempo de fila conta para o timeout nos dois sentidos. Se houver mensagens na frente da sua na fila, esse tempo de espera é somado ao total, mesmo que o pipeline execute rápido depois de iniciar.

{% hint style="info" %}
Mesmo que o pipeline chamado responda em menos de um segundo, o pipeline de origem ainda pode sofrer timeout se os atrasos na fila fizerem o ciclo completo durar mais do que o valor configurado em **Timeout**.
{% endhint %}

Configure o **Timeout** com um valor alto o suficiente para cobrir os atrasos de fila esperados no pipeline chamado, não apenas o tempo de execução típico dele.

### **Timeout do trigger versus timeout do Pipeline Executor**

Um pipeline pode ser iniciado de mais de uma forma, e cada forma pode ter seu próprio timeout:

* Quando um pipeline é iniciado por uma chamada externa através do seu trigger, o timeout configurado no trigger é aplicado.
* Quando um pipeline é iniciado por outro pipeline através do **Pipeline Executor**, o timeout do trigger é ignorado. O **Timeout** configurado no conector **Pipeline Executor** é aplicado no lugar.

Por exemplo, um pipeline pode ter um timeout de trigger de 10 segundos para chamadas de API externas, enquanto um timeout de **Pipeline Executor** de 1 segundo se aplica quando esse mesmo pipeline é chamado internamente por outro pipeline. Os dois valores são independentes, e apenas o timeout relevante para a forma como o pipeline foi iniciado entra em vigor.

### **Configuração recomendada para evitar timeout**

Ao implantar pipelines com **Pipeline Executor**, use a mesma configuração de execução concorrente nas pipelines de origem e de destino, especialmente quando o parâmetro **Operation** estiver definido como SYNC. Uma incompatibilidade de concorrência entre as duas pipelines, ou uma pipeline de destino que também recebe alto volume de tráfego externo, é uma causa comum de erros de enqueue e timeout, mesmo quando a pipeline de destino é executada com sucesso.

Se você já encontrou esse erro em um pipeline em execução, leia [Timeout no conector Pipeline Executor](/documentation/troubleshooting/pt-br/integration-issues/timeout-pipeline-executor.md) para conhecer as causas comuns e a correção.

## **Fluxo de mensagens**

### **Entrada**

Este conector não espera um payload específico como entrada. A entrada é configurada dinamicamente no campo **Payload**, de acordo com as necessidades do pipeline a ser chamado.

### **Saída**

```json
{
   "operation": "SYNC",
   "pipelineName": "pipeline-example",
   "versionMajor": 1,
   "success": true,
   "payload": {},
   "pipelineResponse": {}
}
```

* **`operation`**: a operação selecionada, SYNC ou ASYNC.
* **`pipelineName`**: nome da pipeline chamada.
* **`versionMajor`**: versão major da pipeline chamada.
* **`success`**: indica se a chamada foi bem-sucedida.
* **`payload`**: payload usado para chamar a pipeline configurada.
* **`pipelineResponse`**: resposta da pipeline executada. Essa propriedade é retornada apenas na operação SYNC.

## **Pipeline Executor em ação**

Veja abaixo como o conector se comporta em determinadas situações e como ele é configurado em cada caso.

### **Fazendo uma chamada assíncrona**

* **Operation:** `ASYNC`
* **Pipeline Name:** nome do pipeline a ser chamado
* **Version Major:** `1`
* **Payload:** `{}`
* **Timeout:** `20000`
* **Expiration:** `30000`
* **Fail On Error:** `false`

Nesse cenário, uma chamada assíncrona é feita para o pipeline configurado, e o fluxo atual continua normalmente sem esperar pela resposta do pipeline chamado. Você pode ver os logs de execução e de chamada desse pipeline na tela de logs da plataforma.

**Saída:**

```json
{
   "operation": "ASYNC",
   "pipelineName": "name of the pipeline to be called",
   "versionMajor": 1,
   "success": true,
   "payload": {}
}
```

### **Fazendo uma chamada síncrona**

* **Operation:** `SYNC`
* **Pipeline Name:** nome do pipeline a ser chamado
* **Version Major:** `1`
* **Payload:** `{}`
* **Timeout:** `20000`
* **Expiration:** `30000`
* **Fail On Error:** `false`

**Saída:**

```json
{
   "operation": "SYNC",
   "pipelineName": "name of the pipeline to be called",
   "versionMajor": 1,
   "success": true,
   "payload": {},
   "pipelineResponse": {}
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/tools/pipeline-executor.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
