Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Para evitar atingir o limite de memória de uma unidade de capacidade (), recomendamos a purga periódica dos dados do histórico de orquestração. O Durable Task Scheduler oferece uma funcionalidade leve e configurável de autopurga que o ajuda a gerir a limpeza dos dados de orquestração sem intervenção manual.
| Configuração | Valor predefinido |
|---|---|
| Autopurge | Ativado(a) |
| Período de retenção predefinido | 30 dias |
| Período de retenção máximo | 90 dias |
| Aplica-se a | Todos os hubs de tarefas no agendador |
| Status elegíveis |
Completed, Failed, Canceled, Terminated |
A limpeza automática opera de forma assíncrona em segundo plano, otimizada para minimizar o uso de recursos do sistema e evitar interferências com outras operações de tarefas duráveis. Embora o autopurge não siga uma programação estrita, a sua taxa de limpeza normalmente coincide com a frequência de agendamento da orquestração.
Como funciona
O Autopurge está ativado por defeito com uma política de 30 dias, mas pode ser personalizado. Pode modificá-lo definindo políticas de retenção que especifiquem por quanto tempo manter os dados de orquestração para certos status. A funcionalidade de purga automática remove dados de orquestração que estão em estado terminal. Um estado terminal significa que a orquestração atingiu um estado final e já não agenda tarefas, processa eventos ou gera itens de trabalho. Os estados dos terminais incluem:
CompletedFailedCanceledTerminated
As instâncias de orquestração qualificadas para limpeza automática correspondem àquelas direcionadas pela API Durable SDK PurgeInstancesAsync.
A limpeza automática ignora dados de orquestração associados a estados não-terminais. Os estados não terminais indicam que a instância de orquestração está em execução ativa, pausada, ou num estado onde pode retomar no futuro (à espera de eventos externos ou temporizadores). Os estatutos não terminais incluem:
PendingRunningSuspendedContinued_As_New
Observação
As orquestrações que usam ContinueAsNew não são consideradas terminais.
ContinueAsNew reinicia a orquestração com um novo histórico de execução, preservando o ID da instância, por isso estas instâncias não são eliminadas até atingirem um verdadeiro estado terminal.
Uma vez habilitado, o autopurge exclui periodicamente os dados de orquestração anteriores ao período de retenção definido. O autopurge só remove dados para orquestrações em estados de terminal.
Observação
As políticas de retenção definidas são aplicadas a todos os hubs de tarefas em um agendador.
Configurar políticas de retenção
Intervalo de valor da apólice
Os valores de retenção são especificados em dias e podem variar de 0 (purgar o mais rapidamente possível) até 90 dias. Por padrão, a retenção do autopurge é definida como 30 dias.
O período de retenção começa quando a orquestração entra num estado terminal, não quando foi criada. Por exemplo, se definires um valor de retenção de 1 dia e uma orquestração demorar 10 dias a terminar, o autopurge apaga-o 1 dia depois de terminar.
Incumprimento e tipos específicos de apólices
Ao configurar uma política de retenção de limpeza automática, pode definir uma política específica ou padrão.
A política padrão limpa os dados de orquestração, independentemente do
orchestrationState. A política a seguir limpa os dados de orquestração de todos os status cobertos pelo recurso após 2 dias:{ "retentionPeriodInDays": 2 }A política específica define a limpeza de dados de orquestração para específico
orchestrationState. A política a seguir diz ao Agendador de Tarefas Duráveis para manter os dados de orquestração concluídos por 1 dia, após o qual esses dados são limpos.{ "retentionPeriodInDays": 1, "orchestrationState": "Completed" }
Adicione políticas específicas para substituir a política padrão que é aplicada a orquestrações. No exemplo a seguir, a segunda e terceira políticas substituem a política padrão ("retentionPeriodInDays": 1).
Os dados associados às
completedorquestrações são eliminados assim que possível.Os dados associados a
failedorquestrações são eliminados após 60 dias.[ { "retentionPeriodInDays": 1 }, { "retentionPeriodInDays": 0, "orchestrationState": "Completed" }, { "retentionPeriodInDays": 60, "orchestrationState": "Failed" } ]
Como nenhuma política específica é definida para canceled ou terminated orquestrações, a política padrão ainda se aplica a eles, eliminando os seus dados após 1 dia.
Ativar limpeza automática
Você pode definir políticas de retenção usando:
- Interface de Linha de Comando de Tarefas Duráveis
- Azure Resource Manager (ARM)
- Bíceps
Verifique se você tem a versão mais recente da extensão Durable Task CLI.
az extension add --name durabletask
az extension update --name durabletask
Crie ou atualize a política de retenção executando o seguinte comando.
az durabletask retention-policy create --scheduler-name SCHEDULER_NAME --resource-group RESOURCE_GROUP --default-days 1 --completed-days 0 --failed-days 60
As propriedades a seguir especificam a duração da retenção para dados de orquestração de status diferentes.
| Propriedade | Descrição |
|---|---|
--canceled-days ou -x |
O número de dias para reter orquestrações canceladas. |
--completed-days ou -c |
O número de dias para manter orquestrações concluídas. |
--default-days ou -d |
O número de dias para reter orquestrações. |
--failed-days ou -f |
O número de dias para reter orquestrações falhadas. |
--terminated-days ou -t |
O número de dias para reter orquestrações que foram terminadas. |
Exemplo de resposta
Se a criação for bem-sucedida, você receberá a seguinte resposta.
{
"id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/retentionPolicies/default",
"name": "default",
"properties": {
"provisioningState": "Succeeded",
"retentionPolicies": [
{
"retentionPeriodInDays": 1
},
{
"orchestrationState": "Completed",
"retentionPeriodInDays": 0
},
{
"orchestrationState": "Failed",
"retentionPeriodInDays": 60
}
]
},
"resourceGroup": "RESOURCE_GROUP",
"systemData": {
"createdAt": "2025-04-23T23:41:17.3165122Z",
"createdBy": "someone@microsoft.com",
"createdByType": "User",
"lastModifiedAt": "2025-04-23T23:41:17.3165122Z",
"lastModifiedBy": "someone@microsoft.com",
"lastModifiedByType": "User"
},
"type": "microsoft.durabletask/schedulers/retentionpolicies"
}
Sugestão
Saiba mais sobre o comando política de retenção por meio da referência da CLI.
Consulte a política atual
Recuperar a política de retenção atual para um agendador:
az durabletask retention-policy show --scheduler-name SCHEDULER_NAME --resource-group RESOURCE_GROUP
Desativar limpeza automática
Exclua as políticas de retenção usando o comando a seguir. O Durable Task Scheduler para de limpar os dados de orquestração dentro de 5 a 10 minutos.
az durabletask retention-policy delete --scheduler-name SCHEDULER_NAME --resource-group RESOURCE_GROUP