Ange kvarhållningsprinciper för autopurge för Durable Task Scheduler

För att förhindra att minnesgränsen för en kapacitetsenhet (CU) nås rekommenderar vi att du regelbundet rensar orkestreringshistorikdata. Durable Task Scheduler erbjuder en enkel, konfigurerbar funktion för automatisk hantering som hjälper dig att hantera rensning av orkestreringsdata utan manuella åtgärder.

Inställning Standardvärde
Automatisk rensning Aktiverad
Standardkvarhållningsperiod 30 dagar
Högsta kvarhållningsperiod 90 dagar
Gäller för Alla aktivitetshubbar i schemaläggaren
Berättigade statusar Completed, Failed, , CanceledTerminated

Autopurge fungerar asynkront i bakgrunden, optimerad för att minimera användningen av systemresurser och förhindra interferens med andra durable task-åtgärder. Även om autopurge inte följer ett strikt schema, överensstämmer dess rensningsfrekvens vanligtvis med din orkestreringsschemaläggningshastighet.

Så här fungerar det

Autopurge är aktiverat som standard med en 30-dagars princip, men den kan anpassas. Du kan ändra den genom att definiera kvarhållningsprinciper som anger hur länge orkestreringsdata ska behållas för vissa statusar. Funktionen för automatisk rensning tar bort orkestreringsdata som befinner sig i terminala statusar. En terminalstatus innebär att orkestreringen har nått ett slutligt tillstånd och inte längre schemalägger uppgifter, bearbetar händelser eller genererar arbetsobjekt. Terminalstatusar omfattar:

  • Completed
  • Failed
  • Canceled
  • Terminated

Orkestreringsinstanserna som kan autopurge matchar de som är måltavlor för Durable SDK PurgeInstancesAsync API.

Autopurge ignorerar orkestreringsdata som är associerade med icke-terminalstatusar. Statusar som inte är slutliga anger att orkestreringsinstansen antingen aktivt körs, är pausad, eller är i ett tillstånd där den kan återupptas senare (väntar på externa händelser eller timrar). Statusar som inte är terminaler omfattar:

  • Pending
  • Running
  • Suspended
  • Continued_As_New

Anmärkning

Orkestreringar som använder ContinueAsNew betraktas inte som slutgiltiga. ContinueAsNew startar om orkestreringen med en ny körningshistorik samtidigt som instans-ID:t bevaras, så dessa instanser rensas inte förrän de når ett sant terminaltillstånd.

När den är aktiverad tar autopurge regelbundet bort orkestreringsdata som är äldre än den kvarhållningsperiod som du anger. Autopurge tar bara bort data för orkestreringar i terminalstatusar.

Anmärkning

Kvarhållningsprinciper som du definierar tillämpas på alla aktivitetshubbar i en schemaläggare.

Konfigurera kvarhållningsprinciper

Principvärdeintervall

Kvarhållningsvärden anges i dagar och kan variera från 0 (rensa så snart som möjligt) till 90 dagar. Som standard är automatisk rensning inställd på 30 dagar.

Kvarhållningsperioden startar när orkestreringen går in i ett terminaltillstånd, inte när den skapades. Om du till exempel anger ett kvarhållningsvärde på 1 dag och en orkestrering tar 10 dagar att slutföra tar autopurge bort det 1 dag efter att det har slutförts.

Standard och specifika principtyper

När du konfigurerar en kvarhållningspolicy för automatiskt rensning kan du ange antingen en specifik policy eller en standardpolicy.

  • Standardprincip rensar orkestreringsdata oavsettorchestrationState. Följande princip rensar orkestreringsdata för alla statusar som omfattas av funktionen efter 2 dagar:

    {
      "retentionPeriodInDays": 2
    }
    
  • Specifik princip definierar rensning av orkestreringsdata för specifika orchestrationState. Följande princip instruerar Durable Task Scheduler att behålla slutförda orkestreringsdata i 1 dag, varefter dessa data rensas.

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

Lägg till specifika principer för att åsidosätta standardprincipen som tillämpas på orkestreringar. I följande exempel åsidosätter den andra och tredje principen standardprincipen ("retentionPeriodInDays": 1).

  • Data som är associerade med completed orkestreringar tas bort så snart som möjligt.

  • Data som är associerade med failed orkestreringar rensas efter 60 dagar.

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

Eftersom ingen specifik princip har angetts för canceled eller terminated orkestreringar gäller standardprincipen fortfarande för dem och rensar deras data efter en dag.

Mer information finns i API-referensspecifikationen för kvarhållningsprinciper för Durable Task Scheduler.

Aktivera autopurge

Du kan definiera kvarhållningsprinciper med hjälp av:

  • Durable Task CLI
  • Azure Resource Manager (ARM)
  • Bicep

Kontrollera att du har den senaste versionen av DURABLE Task CLI-tillägget.

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

Skapa eller uppdatera kvarhållningsprincipen genom att köra följande kommando.

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

Följande egenskaper anger kvarhållningstiden för orkestreringsdata med olika statusar.

Fastighet Beskrivning
--canceled-days eller -x Antal dagar att behålla avbrutna orkestreringar.
--completed-days eller -c Antalet dagar för att lagra färdigställda orkestreringar.
--default-days eller -d Antal dagar som orkestreringar ska bevaras.
--failed-days eller -f Antalet dagar för att behålla misslyckade orkestreringar.
--terminated-days eller -t Antal dagar som avslutade orkestreringar behålls.

Exempelsvar

Om skapandet lyckas får du följande svar.

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

Tips/Råd

Lär dig mer om kommandot för lagringspolicy via CLI-referensen.

Visa aktuell policy

Hämta den aktuella kvarhållningsprincipen för en schemaläggare:

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

Inaktivera autopurge

Ta bort kvarhållningsprinciperna med hjälp av följande kommando. Durable Task Scheduler slutar rensa orkestreringsdata inom 5 till 10 minuter.

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