

A Amazon não CodeCatalyst está mais aberta a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Como migrar do CodeCatalyst](migration.md).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Configurar o comportamento de enfileiramento das execuções
<a name="workflows-configure-runs"></a>

Por padrão, no Amazon CodeCatalyst, quando várias execuções do fluxo de trabalho ocorrem simultaneamente, o CodeCatalyst as coloca em fila e as processa uma a uma, na ordem em que foram iniciadas. Esse comportamento padrão pode ser alterado especificando um *modo de execução*. Existem alguns modos de execução:
+ (Padrão) Modo de execução em fila: os processos do CodeCatalyst são executados um por um.
+ Modo de execução substituída: os processos do CodeCatalyst são executados um por um, com execuções mais recentes substituindo as mais antigas.
+ Modo de execução paralela: os processos do CodeCatalyst são executados paralelamente.

Para ter mais informações sobre execuções de fluxos de trabalho, consulte [Executar um fluxo de trabalho](workflows-working-runs.md).

**Topics**
+ [Sobre o modo de execução em fila](#workflows-configure-runs-queued)
+ [Sobre o modo de execução substituída](#workflows-configure-runs-superseded)
+ [Sobre o modo de execução paralela](#workflows-configure-runs-parallel)
+ [Configurar o modo de execução](#workflows-configure-runs-configure)

## Sobre o modo de execução em fila
<a name="workflows-configure-runs-queued"></a>

No *modo de execução em fila*, as execuções ocorrem em série, com as execuções em espera formando uma fila.

As filas se formam nos pontos de entrada para ações e grupos de ações, para que você possa ter *várias filas no mesmo fluxo de trabalho* (consulte [Figure 1](#figure-1-workflow-queued-run-mode)). Quando uma execução em fila aciona uma ação, ela é bloqueada e nenhuma outra execução pode ser realizada. Quando a execução termina e sai da ação, ela fica desbloqueada e pronta para a próxima execução.

[Figure 1](#figure-1-workflow-queued-run-mode) ilustra um fluxo de trabalho configurado no modo de execução em fila. Mostra:
+ Sete execuções percorrendo o fluxo de trabalho.
+ Duas filas: uma fora da entrada da fonte de entrada (**Repo:main**) e outra fora da entrada da ação **BuildTestActionGroup**.
+ Dois blocos bloqueados: a origem da entrada (**Repo:main**) e **BuildTestActionGroup**. 

Veja o que ocorrerá quando o processamento das execuções do fluxo de trabalho for concluído:
+ Quando o **Run-4d444** terminar de clonar o repositório de origem, ele sairá da origem da entrada e entrará na fila atrás de **Run-3c333**. Depois, **Run-5e555** entrará na origem da entrada.
+ Quando **Run-1a111** terminar de compilar e testar, ele sairá da ação **BuildTestActionGroup** e acionará a ação **DeployAction**. Depois, o **Run-2b222** acionará a ação **BuildTestActionGroup**.

**Figura 1**: um fluxo de trabalho configurado em “modo de execução em fila”

![\[Um fluxo de trabalho configurado em “modo de execução em fila”\]](http://docs.aws.amazon.com/pt_br/codecatalyst/latest/userguide/images/flows/RunMode-Queued.png)


Use o modo de execução em fila se:
+ **Você deseja manter um relacionamento um para um entre recursos e execuções: esses recursos podem ser agrupados quando o modo de substituição é utilizado**. Por exemplo, quando você mescla o recurso 1 na confirmação 1, a execução 1 é iniciada, e quando você mescla o recurso 2 na confirmação 2, a execução 2 é iniciada e assim por diante. Se você usar o modo de substituição em vez do modo em fila, os recursos (e as confirmações) serão agrupados na execução que substituirá as outras.
+ **Você deseja evitar condições de corrida e problemas inesperados que possam ocorrer no uso do modo paralelo**. Por exemplo, se dois desenvolvedores de software, Wang e Saanvi, iniciarem a execução do fluxo de trabalho aproximadamente ao mesmo tempo para implantação em um cluster do Amazon ECS, a execução de Wang poderá iniciar os testes de integração no cluster, enquanto a execução de Saanvi implantará um novo código de aplicação no cluster, fazendo com que os testes de Wang falhem ou testem o código errado. Como outro exemplo, é possível ter um destino sem um mecanismo de bloqueio. Nesse caso, as duas execuções podem substituir as alterações uma da outra de maneiras inesperadas.
+ **Você deseja limitar a carga** nos recursos computacionais que o CodeCatalyst usa para processar as execuções. Por exemplo, se você tiver três ações no fluxo de trabalho, poderá ter no máximo três execuções ao mesmo tempo. A imposição de um limite no número de execuções que podem ocorrer simultaneamente torna o throughput de execução mais previsível.
+ **Você deseja restringir o número de solicitações feitas a serviços de terceiros** pelo fluxo de trabalho. Por exemplo, o fluxo de trabalho pode ter uma ação de criação que inclua instruções para extrair uma imagem do Docker Hub. [O Docker Hub limita o número de solicitações pull](https://www.docker.com/increase-rate-limits) que você pode fazer a determinado número por hora por conta, e você será bloqueado se ultrapassar o limite. Usar o modo de execução em fila para diminuir o throughput de execução terá o efeito de gerar menos solicitações para o Docker Hub por hora, limitando assim o potencial de bloqueios e gerando falhas de criação e de execução.

**Tamanho máximo da fila**: 50

Notas sobre **o tamanho máximo da fila**:
+ O tamanho máximo da fila refere-se ao número máximo de execuções permitidas em *todas as filas* no fluxo de trabalho.
+ Se uma fila tiver mais de 50 execuções, o CodeCatalyst descartará a 51ª execução e as subsequentes.

**Comportamento com falha**:

Se uma execução deixar de responder enquanto estiver sendo processada por uma ação, as execuções atrás dela serão mantidas na fila até que a ação expire. As ações expiram após uma hora.

Se uma execução falhar dentro de uma ação, a primeira execução em fila após ela poderá continuar.

## Sobre o modo de execução substituída
<a name="workflows-configure-runs-superseded"></a>

O *modo de execução substituída* é o mesmo que o *modo de execução em fila*, exceto que:
+ Se uma execução em fila alcançar outra, a execução posterior substituirá a execução anterior, e a execução anterior será cancelada e marcada como “substituída”.
+ Como resultado do comportamento descrito no primeiro item, uma fila só pode incluir uma execução quando o modo de execução substituída é usado. 

Usando o fluxo de trabalho em [Figure 1](#figure-1-workflow-queued-run-mode) como guia, a aplicação do modo de execução substituída a esse fluxo de trabalho ocasionaria o seguinte:
+ **Run-7g777** substituiria as outras duas execuções na fila e seria a única execução restante na **Fila 1**. **Run-6f666** e **Run-5e555** seriam canceladas.
+ **Run-3c333** substituiria **Run-2b222** e seria a única execução restante na **Fila 2**. **Run-2b222** seria cancelada.

Se desejar, use o modo de execução substituída:
+ melhor throughput do que no modo em fila
+ ainda menos solicitações em serviços de terceiros do que no modo em fila; isso será vantajoso se o serviço de terceiros tiver limites de taxa, como o Docker Hub.

## Sobre o modo de execução paralela
<a name="workflows-configure-runs-parallel"></a>

No *modo de execução paralela*, as execuções são independentes umas das outras e não esperam que outras execuções sejam concluídas antes de começar. Não há filas e o throughput da execução é limitado apenas pela rapidez com que as ações dentro do fluxo de trabalho são concluídas. 

Use o modo de execução paralela em ambientes de desenvolvimento em que cada usuário tem a própria ramificação de recursos e implanta em destinos que não são compartilhados por outros usuários.

**Importante**  
Se você tiver um destino compartilhado em que vários usuários possam implantar, como uma função do Lambda em um ambiente de produção, não use o modo paralelo, pois podem ocorrer condições de corrida. Uma *condição de corrida* ocorre quando execuções paralelas do fluxo de trabalho tentam alterar um recurso compartilhado ao mesmo tempo, gerando resultados imprevisíveis.

**Número máximo de execuções paralelas**: mil por espaço do CodeCatalyst

## Configurar o modo de execução
<a name="workflows-configure-runs-configure"></a>

É possível definir o modo de execução como em fila, substituída ou paralela. O padrão é em fila.

Quando você altera o modo de execução de em fila ou substituída para paralela, o CodeCatalyst cancela as execuções que estão na fila e permite que as execuções processadas atualmente por uma ação terminem antes de cancelá-las.

Quando você altera o modo de execução de paralela para em fila ou substituída, o CodeCatalyst permite que todas as execuções paralelas em execução no momento sejam concluídas. Todas as execuções que você iniciar depois de alterar o modo de execução para em fila ou substituída usarão o novo modo.

------
#### [ Visual ]

**Como alterar o modo de execução usando o editor visual**

1. Abra o console do CodeCatalyst em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Selecione o projeto.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione o nome do fluxo de trabalho. É possível filtrar pelo nome do repositório ou da ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou o status do fluxo de trabalho.

1. Escolha **Editar**.

1. No canto superior direito, selecione **Propriedades do fluxo de trabalho**.

1. Expanda **Avançado** e, em **Modo de execução**, selecione uma das seguintes opções:

   1. **Em fila**: consulte [Sobre o modo de execução em fila](#workflows-configure-runs-queued)

   1. **Substituída**: consulte [Sobre o modo de execução substituída](#workflows-configure-runs-superseded)

   1. **Paralela**: consulte [Sobre o modo de execução paralela](#workflows-configure-runs-parallel)

1. (Opcional) Selecione **Validar** para validar o código YAML do fluxo de trabalho antes de confirmar.

1. Selecione **Confirmar**, insira uma mensagem de confirmação e escolha **Confirmar** novamente.

------
#### [ YAML ]

**Como alterar o modo de execução usando o editor YAML**

1. Abra o console do CodeCatalyst em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Selecione o projeto.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Selecione o nome do fluxo de trabalho. É possível filtrar pelo nome do repositório ou da ramificação de origem em que o fluxo de trabalho está definido, ou filtrar pelo nome ou o status do fluxo de trabalho.

1. Escolha **Editar**.

1. Selecione **YAML**.

1. Adicione a propriedade `RunMode`:

   ```
   Name: Workflow_6d39
   SchemaVersion: "1.0"
   RunMode: QUEUED|SUPERSEDED|PARALLEL
   ```

   Para ter mais informações, consulte a descrição da propriedade `RunMode` na seção [Propriedades de nível superior](workflow-reference.md#workflow.top.level) de [Definição do YAML do fluxo de trabalho](workflow-reference.md).

1. (Opcional) Selecione **Validar** para validar o código YAML do fluxo de trabalho antes de confirmar.

1. Selecione **Confirmar**, insira uma mensagem de confirmação e escolha **Confirmar** novamente.

------