Ustaw zasady automatycznego usuwania danych dla Harmonogramu Trwałych Zadań

Aby zapobiec osiągnięciu limitu pamięci jednostki pojemności (CU), zalecamy okresowe przeczyszczanie danych historii aranżacji. Durable Task Scheduler oferuje lekką, konfigurowalną funkcję automatycznego czyszczenia, która ułatwia zarządzanie usuwaniem danych orkiestracji bez ręcznej interwencji.

Setting Wartość domyślna
Automatyczne czyszczenie Włączone
Domyślny okres przechowywania 30 dni
Maksymalny okres przechowywania 90 dni
Dotyczy Wszystkie węzły zadań w harmonogramatorze
Kwalifikujące się stany Completed, , Failed, , CanceledTerminated

Autopurge działa asynchronicznie w tle, jest zoptymalizowany do minimalizowania użycia zasobów systemowych i zapobiegania zakłóceniom w innych operacjach Durable Task. Chociaż autopurge nie przestrzega ścisłego harmonogramu, jego współczynnik oczyszczania zazwyczaj jest zgodny z częstotliwością harmonogramowania orkiestracji.

Jak to działa

Autopurge jest domyślnie włączona z 30-dniowymi zasadami, ale można ją dostosować. Można go zmodyfikować, definiując zasady przechowywania, które określają, jak długo mają być zachowywane dane aranżacji dla określonych stanów. Funkcja automatycznego czyszczenia usuwa dane orkiestracji, które są w stanach końcowych. Stan terminalu oznacza, że orkiestracja osiągnęła stan końcowy i nie będzie już planować zadań, przetwarzać zdarzeń ani generować zadań do wykonania. Statusy terminalu obejmują:

  • Completed
  • Failed
  • Canceled
  • Terminated

Wystąpienia orkiestracji kwalifikujące się do autopurge są zgodne z wystąpieniami docelowymi interfejsu API Durable SDK PurgeInstancesAsync.

Autopurge ignoruje dane dotyczące orkiestracji skojarzone ze stanami nieterminalnymi. Stany nieterminalne wskazują, że instancja orkiestracji jest albo aktywnie wykonywana, wstrzymana, albo w stanie, w którym może zostać wznowiona w przyszłości (oczekując na zdarzenia zewnętrzne lub zegary). Stanami nieterminalnymi są:

  • Pending
  • Running
  • Suspended
  • Continued_As_New

Uwaga / Notatka

Orkiestracje przy użyciu ContinueAsNew nie są uznawane za ostateczne. ContinueAsNew Ponownie uruchamia orkiestrację przy użyciu nowej historii uruchomienia, zachowując identyfikator wystąpienia, więc te wystąpienia nie są czyszczone, dopóki nie osiągną rzeczywistego stanu końcowego.

Uwaga / Notatka

Możesz zauważyć różne nazewnictwo w interfejsach API i pakietach SDK: ContinueAsNew to wywołanie interfejsu API orkiestracji, natomiast wartości stanu środowiska uruchomieniowego są przedstawiane jako ContinuedAsNew (w pakietach SDK) lub Continued_As_New (w ładunkach service/REST). Niektóre starsze typy klientów .NET w trakcie procesu są oznaczone jako przestarzałe, ale ta zmiana nie wpływa na zachowanie automatycznego czyszczenia: instancje kontynuowane jako nowe pozostają nieterminalne i nie są usuwane, dopóki nie osiągną stanu terminalnego.

Po włączeniu autopurge okresowo usuwa dane aranżacji starsze niż ustawiony okres przechowywania. Autopurge usuwa tylko dane dla orkiestracji w końcowych statusach.

Uwaga / Notatka

Zdefiniowane zasady przechowywania są stosowane do wszystkich centrów zadań w harmonogramie.

Konfigurowanie zasad przechowywania

Zakres wartości zasad

Wartości przechowywania są określane w dniach i mogą wahać się od 0 (przeczyszczanie tak szybko, jak to możliwe) do 90 dni. Domyślnie automatyczne przechowywanie jest ustawione na 30 dni.

Okres przechowywania rozpoczyna się, gdy orkiestracja wchodzi w stan końcowy, a nie podczas jej tworzenia. Jeśli na przykład ustawisz wartość przechowywania 1 dzień, a aranżacja potrwa 10 dni, autopurge usunie ją 1 dzień po zakończeniu.

Domyślne i szczegółowe typy zasad

Podczas konfigurowania zasad automatycznego przechowywania można ustawić określone lub domyślne zasady.

  • Domyślne zasady czyszczą dane orkiestracji niezależnie odorchestrationState. Następujące dane orkiestracji zasad obejmują wszystkie stany objęte tą funkcją po 2 dniach:

    {
      "retentionPeriodInDays": 2
    }
    
  • Określone zasady definiują usuwanie danych koordynacji dla określonego elementu orchestrationState. Polityka opisana poniżej informuje program Durable Task Scheduler o zachowaniu ukończonych danych orkiestracji przez 1 dzień, po czym te dane są usuwane.

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

Dodaj konkretne zasady, aby nadpisać domyślne zasady zastosowane do orkiestracji. W poniższym przykładzie drugie i trzecie zasady zastępują zasady domyślne ("retentionPeriodInDays": 1).

  • Dane skojarzone z aranżacjami completed są usuwane tak szybko, jak to możliwe.

  • Dane skojarzone z aranżacjami failed są czyszczone po 60 dniach.

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

Ponieważ nie ustawiono żadnych konkretnych zasad ani canceledterminated aranżacji, domyślne zasady nadal dotyczą tych zasad, przeczyszczając dane po upływie 1 dnia.

Aby uzyskać więcej informacji, zobacz specyfikację referencyjną interfejsu API dla zasad przechowywania harmonogramu zadań trwałych.

Włącz automatyczne czyszczenie

Zasady przechowywania można zdefiniować przy użyciu następujących metod:

  • Stała konsola dla zadań
  • Azure Resource Manager (ARM)
  • Bicep

Upewnij się, że masz najnowszą wersję rozszerzenia interfejsu wiersza polecenia rozszerzenia Durable Task.

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

Utwórz lub zaktualizuj zasady przechowywania, uruchamiając następujące polecenie.

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

Poniższe właściwości określają czas przechowywania dla danych orkiestracji różnych statusów.

Majątek Opis
--canceled-days lub -x Liczba dni przechowywania anulowanych orkiestracji.
--completed-days lub -c Liczba dni przechowywania ukończonych aranżacji.
--default-days lub -d Liczba dni przechowywania orkiestracji.
--failed-days lub -f Liczba dni przechowywania aranżacji zakończonych niepowodzeniem.
--terminated-days lub -t Liczba dni przechowywania zakończonych aranżacji.

Przykładowa odpowiedź

Jeśli tworzenie zakończy się pomyślnie, otrzymasz następującą odpowiedź.

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

Wskazówka

Dowiedz się więcej o poleceniu dotyczącym zasad przechowywania, korzystając z dokumentacji CLI.

Wyświetlanie bieżących zasad

Pobierz bieżące zasady przechowywania dla harmonogramu:

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

Wyłącz autopurge

Usuń zasady przechowywania przy użyciu następującego polecenia. Planista trwałych zadań zatrzymuje proces czyszczenia danych orkiestracji w przeciągu 5 do 10 minut.

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