Dela via


Ange policyer för automatisk rensning av kvarhållning för Azure Functions Durable Task Scheduler (förhandsversion)

För att förhindra att minnesgränsen för en kapacitetsenhet (CU) nås är det bästa praxis att regelbundet rensa orkestreringshistorikdata. Durable Task Scheduler erbjuder en enkel, konfigurerbar funktion för automatisk hantering som hjälper dig att hantera orkestreringsdatarensning utan manuella åtgärder.

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 en opt-in-funktion. Du kan aktivera det genom att definiera kvarhållningsprinciper som styr hur länge orkestreringsdata ska hållas i vissa statusar. Funktionen för automatisk rensning rensar orkestreringsdata som är associerade med slutstatusar. "Terminal" avser orkestreringar som har nått ett slutligt tillstånd utan ytterligare schemaläggning, händelsebearbetning eller generering av 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. Statusen "Icke-terminal" anger att orkestreringsinstansen antingen aktivt körs, är pausad eller befinner sig i ett tillstånd där den kan återupptas i framtiden (väntar på externa händelser eller tidsgränser). Dessa orkestreringar som fortsätter som nya, där den aktuella körningen har slutförts, men en ny instans har startats som en fortsättning.

Dessa statusar är:

  • Pending
  • Running
  • Suspended
  • Continued_As_New

När den är aktiverad tar autopurge regelbundet bort orkestreringsdata som är äldre än den kvarhållningsperiod som du anger. Endast automatisk rensning

Anmärkning

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

Principvärde

Kvarhållningsvärdet kan variera från 0 (rensa så snart som möjligt) till det maximala heltalsvärdet, där enheten är dagar.

Standardinställning och maximal kvarhållning
Som standard är automatisk rensning inställd på 30 dagar. Det här värdet säkerställer en balanserad metod för datarensning och resurseffektivitet.
Du kan förlänga kvarhållningsperioden till högst 90 dagar, vilket ger flexibilitet för scenarier som kräver längre kvarhållning av orkestreringshistorik.

Kvarhållningsperioden avser tidsperioden efter att orkestreringen övergick till slutligt tillstånd. Du kan till exempel ange ett kvarhållningsvärde på 1 dag. Om orkestreringen tar 10 dagar att slutföra tar autopurge inte bort den förrän följande dag. Autopurge utlöses inte förrän orkestreringen har slutförts.

Även om kvarhållningsperioder inte har någon maximal gräns rekommenderar vi att du undviker att behålla stora mängder inaktuella orkestreringsdata under längre perioder. Den här metoden säkerställer effektiv användning av lagringsresurser och upprätthåller optimala appprestanda.

Typer av principer

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)
  • Biceps

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 som orkestreringarna har avbrutits.
--completed-days eller -c Antalet dagar för att behålla slutförda orkestreringar.
--default-days eller -d Antal dagar som orkestrering ska behållas.
--failed-days eller -f Antalet dagar för att behålla misslyckade orkestreringar.
--terminated-days eller -t Antal dagar som avslutade orkestreringar ska behållas.

Exempelsvar

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

{
  "id": "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAMER/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.

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

Nästa steg

Övervaka och hantera orkestreringsstatusen och historiken med instrumentpanelen Durable Task Scheduler.