Set autopurge Aufbewahrungsrichtlinien für Durable Task Scheduler

Um zu verhindern, dass die Speichergrenze einer Kapazitätseinheit (CU) erreicht wird, empfiehlt es sich, die Orchestrierungsverlaufsdaten regelmäßig zu löschen. Der Durable Task Scheduler bietet ein einfaches, konfigurierbares Autopurge-Feature, mit dem Sie Die Orchestrierungsdaten bereinigen können, ohne manuelle Eingriffe zu verwenden.

Setting Standardwert
Automatische Bereinigung Aktiviert
Standardaufbewahrungszeitraum 30 Tage
Maximale Aufbewahrungsdauer 90 Tage
Gilt für: Alle Aufgabenhubs im Scheduler
Berechtigte Status Completed, Failed, Canceled, Terminated

AutoPurge funktioniert asynchron im Hintergrund, optimiert, um die Systemressourcennutzung zu minimieren und Störungen mit anderen dauerhaften Vorgangsvorgängen zu verhindern. Die automatische Bereinigung hält sich zwar nicht an einen strikten Zeitplan, ihre Bereinigungsrate ist jedoch allgemein an die Planungsrate Ihrer Orchestrierung angepasst.

So funktioniert es

AutoPurge ist standardmäßig mit einer Richtlinie von 30 Tagen aktiviert, kann aber angepasst werden. Sie können sie ändern, indem Sie Aufbewahrungsrichtlinien definieren, die angeben, wie lange die Orchestrierungsdaten für bestimmte Status beibehalten werden sollen. Die Funktion Autopurge entfernt Orchestrationsdaten, die sich im Terminal-Status befinden. Ein terminaler Status bedeutet, dass die Orchestrierung den endgültigen Zustand erreicht hat und keine Aufgaben mehr terminiert, Ereignisse bearbeitet oder Arbeitsaufträge generiert. Zu den Terminalstatusse gehören:

  • Completed
  • Failed
  • Canceled
  • Terminated

Die Orchestrierungsinstanzen, die für die automatische Bereinigung berechtigt sind, sind dieselben wie diejenigen, die von der Durable SDK PurgeInstancesAsync-API bestimmt werden.

Bei der automatischen Bereinigung werden Orchestrierungsdaten ignoriert, die mit Status vom Typ „Nicht terminal“ verbunden sind. Nicht terminale Status deuten darauf hin, dass die Orchestrierungsinstanz entweder aktiv ausgeführt, angehalten oder in einem Zustand ausgeführt wird, in dem sie in Zukunft fortgesetzt werden kann (auf externe Ereignisse oder Timer warten). Zu den Nicht-Terminalstatus gehören:

  • Pending
  • Running
  • Suspended
  • Continued_As_New

Hinweis

Orchestrierungen, die ContinueAsNew verwenden, werden nicht als abschließend betrachtet. ContinueAsNew startet die Orchestrierung mit einem neuen Ausführungsverlauf neu, während die Instanz-ID beibehalten wird, sodass diese Instanzen erst gelöscht werden, wenn sie einen echten Terminalstatus erreicht haben.

Nach der Aktivierung löscht autoPurge regelmäßig Orchestrierungsdaten, die älter als der von Ihnen festgelegte Aufbewahrungszeitraum sind. AutoPurge entfernt nur Daten von Orchestrierungen, die sich in endgültigen Status befinden.

Hinweis

Aufbewahrungsrichtlinien, die Sie definieren, werden auf alle Aufgabenhubs in einem Scheduler angewendet.

Konfigurieren von Aufbewahrungsrichtlinien

Wertebereich der Richtlinie

Aufbewahrungswerte werden in Tagen angegeben und können zwischen 0 (löscht so bald wie möglich) bis 90 Tage liegen. Standardmäßig ist die automatische Aufbewahrung auf 30 Tage festgelegt.

Der Aufbewahrungszeitraum beginnt, wenn die Orchestrierung in den Endzustand übergeht, nicht beim Erstellen. Wenn Sie z. B. einen Aufbewahrungswert von 1 Tag festlegen und ein Orchestrierungsprozess 10 Tage dauert, wird er 1 Tag nach Abschluss durch Autopurge gelöscht.

Standard- und spezifische Richtlinientypen

Beim Konfigurieren einer Autopurge-Aufbewahrungsrichtlinie können Sie entweder eine bestimmte oder eine Standardrichtlinie festlegen.

  • Standardrichtlinie löscht Orchestrierungsdaten unabhängig vonorchestrationState. Die folgende Richtlinie bereinigt die Orchestrierungsdaten aller vom Feature abgedeckten Status nach 2 Tagen.

    {
      "retentionPeriodInDays": 2
    }
    
  • Spezifische Richtlinie definiert die Bereinigung von Orchestrierungsdaten für spezifische orchestrationState. Die folgende Richtlinie weist den Dauerhaften Aufgabenplaner an, die abgeschlossenen Orchestrierungsdaten für 1 Tag beizubehalten, nach denen diese Daten gelöscht werden.

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

Fügen Sie bestimmte Richtlinien hinzu, um die Standardrichtlinie außer Kraft zu setzen, die auf Orchestrierungen angewendet wird. Im folgenden Beispiel überschreiben die zweite und dritte Richtlinie die Standardrichtlinie ("retentionPeriodInDays": 1).

  • Mit Orchestrierungen vom Typ completed verbundene Daten werden so schnell wie möglich gelöscht.

  • Mit Orchestrierungen vom Typ failed verbundene Daten werden nach 60 Tagen gelöscht.

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

Da keine bestimmte Richtlinie für canceled oder terminated Orchestrierungen festgelegt ist, gilt die Standardrichtlinie weiterhin für sie und löscht ihre Daten nach 1 Tag.

Weitere Informationen finden Sie in der API-Referenzspezifikation zu den Aufbewahrungsrichtlinien des dauerhaften Aufgabenplaners.

AutoPurge aktivieren

Sie können Aufbewahrungsrichtlinien mithilfe folgender Komponenten definieren:

  • CLI für langlebige Aufgaben
  • Azure Resource Manager (ARM)
  • Bicep

Stellen Sie sicher, dass Sie über die neueste Version der Cli-Erweiterung "Durable Task" verfügen.

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

Erstellen oder aktualisieren Sie die Aufbewahrungsrichtlinie, indem Sie den folgenden Befehl ausführen.

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

Die folgenden Eigenschaften geben die Aufbewahrungsdauer für Orchestrierungsdaten unterschiedlicher Status an.

Eigentum Beschreibung
--canceled-days oder -x Die Anzahl der Tage, die abgebrochene Orchestrierungen beibehalten werden sollen.
--completed-days oder -c Die Anzahl der Tage, die abgeschlossene Orchestrierungen beibehalten werden sollen.
--default-days oder -d Die Anzahl der Tage, die Orchestrierungen beibehalten werden sollen.
--failed-days oder -f Die Anzahl der Tage, die fehlgeschlagene Orchestrierungen beibehalten werden sollen.
--terminated-days oder -t Die Anzahl der Tage, die beendete Orchestrierungen beibehalten werden sollen.

Beispielantwort

Wenn die Erstellung erfolgreich ist, erhalten Sie die folgende Antwort.

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

Tipp

Erfahren Sie mehr über den Befehl "Aufbewahrungsrichtlinie" über die CLI-Referenz.

Aktuelle Richtlinie anzeigen

Rufen Sie die aktuelle Aufbewahrungsrichtlinie für einen Scheduler ab:

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

AutoPurge deaktivieren

Löschen Sie die Aufbewahrungsrichtlinien mithilfe des folgenden Befehls. Der langlebige Aufgabenplaner beendet das Bereinigen von Orchestrierungsdaten innerhalb von 5 bis 10 Minuten.

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