Instellen van automatisch verwijderbeleid voor retentie bij Durable Task Scheduler

Om te voorkomen dat de geheugenlimiet van een capaciteitseenheid (CU) wordt bereikt, raden we aan om regelmatig de orkestratiegeschiedenis te wissen. De Durable Task Scheduler biedt een lichtgewicht, configureerbare functie voor automatisch opschonen waarmee u het opschonen van indelingsgegevens kunt beheren zonder handmatige tussenkomst.

Configuratie Standaardwaarde
Automatische purge Ingeschakeld
Standaard retentieperiode 30 dagen
Maximale bewaarperiode 90 dagen
Van toepassing op: Alle taakhubs in de taakplanner
In aanmerking komende statussen Completed,Failed,Canceled,Terminated

Autopurge werkt asynchroon op de achtergrond, geoptimaliseerd om het gebruik van systeembronnen te minimaliseren en interferentie met andere duurzame taakbewerkingen te voorkomen. Hoewel automatisch opschonen niet aan een strikt schema voldoet, wordt de opschoonsnelheid doorgaans aangepast aan de frequentie van uw orkestratieschema.

Hoe werkt het?

Autopurge is standaard ingeschakeld met een beleid van 30 dagen, maar kan worden aangepast. U kunt dit wijzigen door bewaarbeleid te definiëren dat aangeeft hoe lang de indelingsgegevens voor bepaalde statussen moeten worden bewaard. Met de functie voor autoverwijdering worden orchestratiegegevens verwijderd die zich in de eindstatussen bevinden. Een terminale status betekent dat de orkestratie een eindtoestand heeft bereikt en geen taken meer zal inplannen, geen gebeurtenissen meer zal verwerken, of werkitems meer zal genereren. Terminalstatussen zijn onder andere:

  • Completed
  • Failed
  • Canceled
  • Terminated

De orchestratie-instanties die in aanmerking komen voor autopurge, zijn overeenkomstig met instanties waarop de Durable SDK PurgeInstancesAsync-API is gericht.

Met Autopurge worden orkestratiegegevens genegeerd die zijn gekoppeld aan niet-terminale statussen. Niet-terminalstatussen geven aan dat het orkestratie-exemplaar actief wordt uitgevoerd, gepauzeerd is, of in een status verkeert waarin het in de toekomst kan worden hervat (wachtend op externe gebeurtenissen of timers). Niet-terminalstatussen zijn onder andere:

  • Pending
  • Running
  • Suspended
  • Continued_As_New

Opmerking

Orchestraties die ContinueAsNew gebruiken, worden niet beschouwd als terminal. ContinueAsNew herstart de orkestratie met een nieuwe uitvoeringsgeschiedenis terwijl de instantie-id behouden blijft, zodat deze instanties pas worden verwijderd nadat ze een echte eindstatus hebben bereikt.

Zodra ingeschakeld, verwijdert de automatische opschoning periodiek orkestratiegegevens die ouder zijn dan de retentieperiode die u hebt ingesteld. Met Autopurge worden alleen gegevens voor orkestraties in terminaltoestanden verwijderd.

Opmerking

Bewaarbeleid dat u definieert, wordt toegepast op alle taakhubs in een planner.

Bewaarbeleid configureren

Beleidswaardebereik

Retentiewaarden worden opgegeven in dagen en kunnen variëren van 0 (zo snel mogelijk opschonen) tot 90 dagen. Standaard is het autopurge-behoud ingesteld op 30 dagen.

De bewaarperiode begint wanneer de orkestratie een terminale staat bereikt, niet wanneer deze is gemaakt. Als u bijvoorbeeld een retentiewaarde van 1 dag instelt en het 10 dagen duurt voordat een orkestratie is voltooid, verwijdert autopurge de orkestratie 1 dag na voltooiing automatisch.

Standaard en specifieke beleidstypen

Wanneer u een bewaarbeleid voor automatisch verwijderen configureert, kunt u een specifiek of een standaard beleid instellen.

  • Standaardbeleid verwijdert orkestratiegegevens ongeachtorchestrationState. De volgende beleidsregel verwijdert orkestratiegegevens voor alle statussen die na 2 dagen door de functie worden gedekt:

    {
      "retentionPeriodInDays": 2
    }
    
  • Specifiek beleid definieert het opschonen van indelingsgegevens voor specifieke orchestrationState. Het volgende beleid informeert Durable Task Scheduler om de voltooide orkestratiegegevens voor de duur van 1 dag te bewaren, waarna deze gegevens worden verwijderd.

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

Voeg specifieke beleidsregels toe om het standaardbeleid te overschrijven dat is toegepast op orkestraties. In het volgende voorbeeld overschrijft het tweede en derde beleid het standaardbeleid ("retentionPeriodInDays": 1).

  • Gegevens die zijn gekoppeld aan completed orkestraties worden zo snel mogelijk verwijderd.

  • Gegevens die gekoppeld zijn aan failed orchestrations, worden na 60 dagen verwijderd.

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

Omdat er geen specifiek beleid is ingesteld voor canceled of terminated indelingen, is het standaardbeleid nog steeds van toepassing op hen, waardoor hun gegevens na 1 dag worden verwijderd.

Zie de API-referentiespecificatie voor retentiebeleid voor Durable Task Scheduler voor meer informatie.

Automatisch opschonen inschakelen

U kunt bewaarbeleid definiëren met behulp van:

  • Duurzame taak-CLI
  • Azure Resource Manager (ARM)
  • Bicep

Zorg ervoor dat u de nieuwste versie van de Durable Task CLI-extensie hebt.

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

Maak of werk het bewaarbeleid bij door de volgende opdracht uit te voeren.

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

De volgende eigenschappen bepalen de bewaartijd voor orchestratiegegevens met verschillende statussen.

Vastgoed Beschrijving
--canceled-days of -x Het aantal dagen dat geannuleerde orkestraties moeten worden behouden.
--completed-days of -c Het aantal dagen dat voltooide orkestraties moeten worden bewaard.
--default-days of -d Het aantal dagen dat orkestraties moeten worden bewaard.
--failed-days of -f Het aantal dagen dat mislukte orkestraties moeten worden bewaard.
--terminated-days of -t Het aantal dagen dat beëindigde orchestraties worden bewaard.

Voorbeeldantwoord

Als het maken is geslaagd, ontvangt u het volgende antwoord.

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

Aanbeveling

Meer informatie over de opdracht bewaarbeleid vindt u via de CLI-verwijzing.

Huidig beleid weergeven

Haal het huidige bewaarbeleid voor een scheduler op:

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

Automatisch autopurgen uitschakelen

Verwijder het bewaarbeleid met behulp van de volgende opdracht. De Durable Task Scheduler stopt na 5 tot 10 minuten met het opschonen van orkestratiegegevens.

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