

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á.

# Tipos de tempo limite do Amazon SWF
<a name="swf-timeout-types"></a>

Para garantir que as execuções do fluxo de trabalho sejam executadas corretamente, você pode definir diferentes tipos de tempos limite com o Amazon SWF. Alguns tempos limite especificam por quanto tempo o fluxo de trabalho pode ser executado na sua totalidade. Outros tempos limites especificam quanto tempo atividades de tarefa podem demorar antes de serem atribuídas a um operador e quanto tempo elas podem levar para serem concluídas a partir do momento em que são agendadas. Todos os tempos limite na API do Amazon SWF são especificados em segundos. O Amazon SWF também aceita a string `NONE` como um valor de tempo limite, o que indica que não há tempo limite.

Para tempos limite relacionados a tarefas de decisão e tarefas de atividade, o Amazon SWF adiciona um evento ao histórico de execução do fluxo de trabalho. Os atributos do evento fornecem informações sobre o tipo de tempo limite ocorrido e qual tarefa de decisão ou tarefa de atividade foi afetada. O Amazon SWF também agenda uma tarefa de decisão. Quando o tomador de decisão receber a nova tarefa de decisão, ele verá o evento de tempo limite no histórico e tomará uma ação apropriada chamando a [RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html)ação.

Uma tarefa é considerada aberta a partir do momento em que ela é agendada até ser encerrada. Portanto, uma tarefa é informada como aberta enquanto um operador a processa. Uma tarefa é encerrada quando um operador a informa como [concluída](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCompleted.html), [cancelada](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCanceled.html) ou [falha](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskFailed.html). Uma tarefa também pode ser fechada pelo Amazon SWF como resultado de um tempo limite.

## Tempos limites em tarefas de fluxo de trabalho e decisão
<a name="swf-timeout-types-workflow"></a>

O diagrama a seguir mostra como tempos limites de fluxo de trabalho e decisão estão relacionado ao ciclo de vida de um fluxo de trabalho:

![\[A vida útil de um fluxo de trabalho, com tempos limite\]](http://docs.aws.amazon.com/pt_br/amazonswf/latest/developerguide/images/workflow_timeouts.png)


Existem dois tipos de tempo limite que são relevantes para tarefas de decisão e fluxo de trabalho:
+ **Início do fluxo de trabalho até o encerramento (`timeoutType: START_TO_CLOSE`)**: esse tempo limite especifica o tempo máximo que uma execução de fluxo de trabalho pode levar para ser concluída. Ele é definido como um padrão durante o registro do fluxo de trabalho, mas pode ser substituído por um valor diferente quando o fluxo de trabalho é iniciado. Se esse tempo limite for excedido, o Amazon SWF fecha a execução do fluxo de trabalho e adiciona [um](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_HistoryEvent.html) evento do [WorkflowExecutionTimedOut](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_WorkflowExecutionTimedOutEventAttributes.html)tipo ao histórico de execução do fluxo de trabalho. Além do `timeoutType`, os atributos de evento especificam o `childPolicy` que está em vigor para essa execução de fluxo de trabalho. A política de elementos secundários especifica como as execuções de fluxo de trabalho secundárias serão tratadas se a execução de fluxo de trabalho principal atingir o tempo limite ou for encerrada de outro modo. Por exemplo `childPolicy`, se ela estiver definida como TERMINATE, as execuções de fluxo de trabalho secundárias serão finalizadas. Quando uma execução de fluxo de trabalho tiver atingido o tempo limite, não será possível realizar nenhuma ação nela além de chamadas de visibilidade.
+ **Início da tarefa de decisão até o encerramento (`timeoutType: START_TO_CLOSE`)**: esse tempo limite especifica o tempo máximo que o agente de decisão correspondente pode levar para concluir uma tarefa de decisão. Ele é definido durante o registro do tipo de fluxo de trabalho. Se esse tempo limite for excedido, a tarefa será marcada como expirada no histórico de execução do fluxo de trabalho e o Amazon SWF adicionará um evento do tipo [DecisionTaskTimedOut](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DecisionTaskTimedOutEventAttributes.html)ao histórico do fluxo de trabalho. Os atributos do evento incluirão IDs os eventos que correspondem a quando essa tarefa de decisão foi agendada (`scheduledEventId`) e quando foi iniciada (`startedEventId`). Além de adicionar o evento, o Amazon SWF também agenda uma nova tarefa de decisão para alertar o agente de decisão de que essa tarefa de decisão atingiu o tempo limite. Após esse tempo limite, uma tentativa de concluir a tarefa de decisão expirada usando `RespondDecisionTaskCompleted` falhará.

## Tempos limites em tarefas de atividade
<a name="swf-timeout-types-activity"></a>

O diagrama a seguir mostra como tempos limite estão relacionados ao ciclo de vida de uma tarefa de atividade:

![\[A vida útil de uma tarefa, com tempos limite\]](http://docs.aws.amazon.com/pt_br/amazonswf/latest/developerguide/images/activity_timeouts.png)


Existem quatro tipos de tempo limite que são relevantes para tarefas de atividade:
+ **Início da tarefa de atividade até o encerramento (`timeoutType: START_TO_CLOSE`)**: esse tempo limite especifica o tempo máximo que um operador de atividade pode levar para processar uma tarefa depois que ele recebeu a tarefa. As tentativas de fechar uma tarefa de atividade com tempo limite expirado usando [RespondActivityTaskCanceled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCanceled.html), [RespondActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCompleted.html), [RespondActivityTaskFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskFailed.html)falharão.
+ **Heartbeat de tarefa de atividade (`timeoutType: HEARTBEAT`)**: esse tempo limite especifica o tempo máximo que uma tarefa pode ser executada antes de fornecer seu andamento por meio da ação `RecordActivityTaskHeartbeat`.
+ **Programação de início da tarefa de atividade(`timeoutType: SCHEDULE_TO_START`)**: esse tempo limite especifica quanto tempo o Amazon SWF aguarda antes de encerrar a tarefa de atividade se não houver operadores disponíveis para executar a tarefa. Após o tempo limite, a tarefa expirada não será atribuída a outro operador.
+ **Programação de encerramento da tarefa de atividade (`timeoutType: SCHEDULE_TO_CLOSE`)**: esse tempo limite especifica quanto tempo a tarefa pode levar desde o momento em que é agendada até o momento em que é concluída. Como prática recomendada, esse valor não deve ser maior que a soma do tempo limite da tarefa e do schedule-to-start tempo limite da tarefa start-to-close.

**nota**  
Cada um dos tipos de tempo limite tem um valor padrão, que geralmente está definido como `NONE` (infinito). No entanto, o tempo máximo para qualquer execução de atividade é limitado a um ano.

Você define valores padrão para eles durante o registro do tipo de atividade, mas pode substituí-los por novos valores ao [agendar](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ScheduleActivityTaskDecisionAttributes.html) a tarefa de atividade. Quando um desses tempos limite ocorrer, o Amazon SWF adicionará [um](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_HistoryEvent.html) evento do [ActivityTaskTimedOut](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskTimedOutEventAttributes.html)tipo ao histórico do fluxo de trabalho. O atributo de valor `timeoutType` desse evento especificará quais desses tempos limites ocorreu. Para cada um dos tempos limites, o valor de `timeoutType` é mostrado entre parênteses. Os atributos do evento também incluirão IDs os eventos que correspondem a quando a tarefa da atividade foi agendada (`scheduledEventId`) e quando foi iniciada (`startedEventId`). Além de adicionar o evento, o Amazon SWF também agenda uma nova tarefa de decisão para alertar o agente de decisão de que o tempo limite ocorreu.