Définir les stratégies de rétention de l’autopurge pour le planificateur de tâches durables

Pour éviter d’atteindre la limite de mémoire d’une unité de capacité (CU), nous vous recommandons de purger régulièrement les données d’historique d’orchestration. Durable Task Scheduler offre une fonctionnalité de nettoyage automatique légère et configurable qui vous permet de gérer le nettoyage des données d’orchestration sans intervention manuelle.

Réglage Valeur par défaut
Vidage automatique Activé
Période de conservation par défaut 30 jours
Période de rétention maximale 90 jours
S’applique à Tous les hubs de tâches dans le planificateur
États éligibles Completed, Failed, Canceled, Terminated

La purge automatique fonctionne de manière asynchrone en arrière-plan, optimisée pour minimiser l'utilisation des ressources système et empêcher les interférences avec les autres opérations de Durable Task. Bien que le vidage automatique ne suive pas un calendrier strict, son taux de nettoyage s’aligne généralement sur votre fréquence de planification des orchestrations.

Fonctionnement

La purge automatique est activée par défaut avec une politique de 30 jours, mais elle peut être personnalisée. Vous pouvez modifier cela en définissant des stratégies de rétention qui spécifient la durée de conservation des données d’orchestration pour certains états. La fonctionnalité autopurge supprime les données d’orchestration dont l'état est final. Un état terminal signifie que l’orchestration a atteint un état final et ne planifie plus les tâches, ne traite plus les événements, ni ne génère des éléments de travail. Les états des terminaux sont les suivants :

  • Completed
  • Failed
  • Canceled
  • Terminated

Les instances d'orchestration éligibles pour le nettoyage automatique correspondent à celles ciblées par l'API PurgeInstancesAsync du Durable SDK.

Le vidage automatique ignore les données d’orchestration associées à des états non terminaux. Les états non terminal indiquent que l’instance d’orchestration est en cours d’exécution, suspendue ou dans un état où elle peut reprendre à l’avenir (en attente d’événements externes ou de minuteurs). Les états non terminal sont les suivants :

  • Pending
  • Running
  • Suspended
  • Continued_As_New

Note

Les orchestrations utilisant ContinueAsNew ne sont pas considérées comme terminales. ContinueAsNew redémarre l’orchestration avec un nouvel historique d’exécution tout en conservant l’ID d’instance, de sorte que ces instances ne sont pas purgées tant qu’elles n’atteignent pas un véritable état de terminal.

Une fois activée, l'autopurge supprime régulièrement les données d’orchestration antérieures à la période de rétention que vous avez définie. Le vidage automatique supprime uniquement les données pour les orchestrations ayant un statut terminal.

Note

Les stratégies de rétention que vous définissez sont appliquées à tous les hubs de tâches dans un planificateur.

Configurer les stratégies de rétention

Plage de valeurs de stratégie

Les valeurs de rétention sont spécifiées en jours et peuvent passer de 0 (purge dès que possible) à 90 jours. Par défaut, la rétention de la purge automatique est définie sur 30 jours.

La période de rétention commence lorsque l’orchestration entre dans un état terminal, et non lors de sa création. Par exemple, si vous définissez une valeur de rétention de 1 jour et qu’une orchestration prend 10 jours pour se terminer, le vidage automatique la supprime 1 jour après sa fin.

Types de stratégie par défaut et spécifiques

Lors de la configuration d’une stratégie de rétention d'autopurge, vous pouvez définir une stratégie spécifique ou une stratégie par défaut.

  • La stratégie par défaut purge les données d’orchestration indépendamment de orchestrationState. La stratégie suivante vide les données d’orchestration de tous les états couverts par la fonctionnalité après 2 jours :

    {
      "retentionPeriodInDays": 2
    }
    
  • Une stratégie spécifique définit la purge des données d’orchestration pour des données spécifiques orchestrationState. La stratégie suivante indique à Durable Task Scheduler de conserver les données d’orchestration terminées pendant 1 jour, après quoi ces données sont vidées.

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

Ajoutez des stratégies spécifiques pour remplacer la stratégie par défaut appliquée aux orchestrations. Dans l’exemple suivant, les deuxième et troisième stratégies remplacent la stratégie par défaut ("retentionPeriodInDays": 1).

  • Les données associées aux orchestrations completed sont supprimées dès que possible.

  • Les données associées aux orchestrations failed sont supprimées après 60 jours.

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

Étant donné qu’aucune stratégie spécifique n’est définie pour les orchestrations canceled ou terminated, la stratégie par défaut s’applique toujours à elles, purgeant leurs données après 1 jour.

Pour plus d’informations, consultez la spécification de référence de l’API pour les stratégies de rétention du planificateur de tâches durables.

Activer la purge automatique

Vous pouvez définir des stratégies de rétention à l’aide des éléments suivants :

  • Interface CLI Tâches durables
  • Azure Resource Manager (ARM)
  • Bicep

Vérifiez que vous disposez de la dernière version de l’extension CLI Tâche durable.

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

Créez ou mettez à jour la stratégie de rétention en exécutant la commande suivante.

az durabletask retention-policy create --scheduler-name SCHEDULER_NAME --resource-group RESOURCE_GROUP --default-days 1 --completed-days 0 --failed-days 60

Les propriétés suivantes spécifient la durée de rétention des données d’orchestration de différents états.

Propriété Description
--canceled-days ou -x Nombre de jours pour conserver les orchestrations annulées.
--completed-days ou -c Nombre de jours pour conserver les orchestrations terminées.
--default-days ou -d Nombre de jours pour conserver les orchestrations.
--failed-days ou -f Nombre de jours pour conserver les orchestrations ayant échoué.
--terminated-days ou -t Nombre de jours pendant lesquels conserver les orchestrations terminées.

Exemple de réponse

Si la création réussit, vous recevez la réponse suivante.

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

Conseil / Astuce

En savoir plus sur la commande de stratégie de rétention via la référence CLI.

Afficher la stratégie actuelle

Récupérez la stratégie de rétention actuelle pour un planificateur :

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

Désactiver l'auto-purge

Supprimez les stratégies de rétention à l’aide de la commande suivante. Le planificateur de tâches durables cesse de nettoyer les données d’orchestration dans les 5 à 10 minutes.

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