Defina políticas de retenção de limpeza automática para o Agendador de Tarefas Duráveis.

Para evitar atingir o limite de memória de uma unidade de capacidade (CU), recomendamos eliminar periodicamente os dados do histórico de orquestração. O Agendador de Tarefas Duráveis oferece um recurso de autopurga leve e configurável que ajuda você a gerenciar a limpeza de dados de orquestração sem intervenção manual.

Setting Valor padrão
Limpeza automática habilitado
Período de retenção padrão 30 dias
Período de retenção máximo 90 dias
Aplicável a Todos os hubs de tarefas no agendador
Status elegíveis Completed, Failed, , CanceledTerminated

A limpeza automática opera de forma assíncrona e em segundo plano, otimizada para minimizar o uso de recursos do sistema e evitar interferências com outras operações de Tarefa Durável. Embora a limpeza automática não siga um cronograma rígido, sua frequência de limpeza geralmente se alinha à frequência de agendamento da sua orquestração.

Como funciona

A autopurga é habilitada por padrão com uma política de 30 dias, mas pode ser personalizada. Você pode modificá-lo definindo políticas de retenção que especificam por quanto tempo manter os dados de orquestração para certos status. O recurso de limpeza automática remove os dados de orquestração que estão em status terminais. Um estado terminal significa que a orquestração atingiu um estado final e não agendará mais tarefas, não processará eventos, nem gerará itens de trabalho. Os status do terminal incluem:

  • Completed
  • Failed
  • Canceled
  • Terminated

As instâncias de orquestração qualificadas para a compra automática correspondem às direcionadas pela API PurgeInstancesAsync do SDK Durável.

Autopurge ignora os dados de orquestração associados a status não terminais. Os status não terminais indicam que a instância de orquestração está sendo executada ativamente, pausada ou em um estado em que pode ser retomada no futuro (aguardando eventos externos ou temporizadores). Os status não terminais incluem:

  • Pending
  • Running
  • Suspended
  • Continued_As_New

Observação

Orquestrações utilizando ContinueAsNew não são consideradas terminais. ContinueAsNew reinicia a orquestração com um novo histórico de execução preservando a ID da instância, para que essas instâncias não sejam limpas até atingirem um estado terminal verdadeiro.

Uma vez ativado, o autopurge exclui periodicamente os dados de orquestração mais antigos do que o período de retenção definido. A limpeza automática remove apenas os dados das orquestrações que se encontram em status finais.

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 valores de política

Os valores de retenção são especificados em dias e podem variar de 0 (limpeza o mais rápido possível) a 90 dias. Por padrão, a retenção de purga automática é definida como 30 dias.

O período de retenção começa quando a orquestração entra em um estado terminal, não quando foi criada. Por exemplo, se você definir um valor de retenção de 1 dia e uma orquestração levar 10 dias para ser concluída, a limpeza automática a excluirá 1 dia após a conclusão.

Tipos de política padrão e específicos

Ao configurar uma política de retenção de redefinição automática, você pode definir uma política específica ou padrão.

  • A política padrão limpa os dados de orquestração independentemente de 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 orchestrationState específicos. A política a seguir instrui o Agendador de Tarefas Duráveis a manter os dados de orquestração concluídos durante um dia, após o qual esses dados são removidos.

    {
      "retentionPeriodInDays": 1,
      "orchestrationState": "Completed"
    }
    

Adicione políticas específicas para substituir a política padrão aplicada às orquestrações. No exemplo a seguir, a segunda e a terceira políticas substituem a política padrão ("retentionPeriodInDays": 1).

  • Os dados associados às orquestrações completed são excluídos assim que possível.

  • Os dados associados às orquestrações failed são eliminados após 60 dias.

    [
      {
        "retentionPeriodInDays": 1
      },
      {
        "retentionPeriodInDays": 0,
        "orchestrationState": "Completed"
      },
      {
        "retentionPeriodInDays": 60,
        "orchestrationState": "Failed"
      }
    ]
    

Como nenhuma política específica está definida para canceled ou terminated orquestrações, a política padrão ainda se aplica a elas, eliminando seus dados após um dia.

Para obter mais informações, consulte a especificação de referência da API para políticas de retenção do Agendador de Tarefas Duráveis.

Habilitar a autopurga

Você pode definir políticas de retenção usando:

  • CLI da Tarefa Durável
  • ARM (Azure Resource Manager)
  • Bíceps

Certifique-se de que você tem a versão mais recente da extensão CLI de Tarefas Duráveis.

az extension add --name durabletask
az extension update --name durabletask

Crie ou atualize a política de retenção executando o comando a seguir.

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 dos dados de orquestração com diferentes status.

Propriedade Descrição
--canceled-days ou -x O número de dias para manter 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 manter orquestrações com falha.
--terminated-days ou -t O número de dias para reter orquestrações encerradas.

Resposta de exemplo

Se a criação for bem-sucedida, você receberá a resposta a seguir.

{
  "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"
}

Dica

Saiba mais sobre o comando de política de retenção por meio da referência da CLI.

Exibir a política atual

Recupere a política de retenção atual para um agendador:

az durabletask retention-policy show --scheduler-name SCHEDULER_NAME --resource-group RESOURCE_GROUP

Desativar autopurge

Exclua as políticas de retenção usando o comando a seguir. O Agendador de Tarefas Duráveis interrompe a limpeza de dados de orquestração dentro de 5 a 10 minutos.

az durabletask retention-policy delete --scheduler-name SCHEDULER_NAME --resource-group RESOURCE_GROUP