Vad är varaktig uppgift?

Durable Task är Microsoft implementering av varaktig exekvering, ett branschövergripande tillvägagångssätt för att göra vanlig kod feltolerant genom att automatiskt fortsätta dess framsteg. Det är ett ramverk för att bygga feltoleranta arbetsflöden och orkestreringar som vanlig kod. Istället för att hantera komplex återförsökslogik, tillståndsmaskiner eller meddelandeköer skriver du din affärslogik som enkla funktioner, och Durable Task hanterar tillståndsbeständighet, automatisk återställning och distribuerad samordning åt dig.

Durable Task-arbetsflöden kan köras i timmar, dagar eller till och med månader, och återupptas på ett tillförlitligt sätt från det senaste slutförda steget efter en krasch, omstart eller omdistribution. Vanliga användningsfall är distribuerade transaktioner, AI-orkestrering med flera agenter, pipelines för databearbetning och infrastrukturhantering.

Resten av denna artikel förklarar var Durable Task passar in, vilka språk och hostingmodeller det stödjer, samt hur det är strukturerat, så att du kan bestämma hur du bygger feltoleranta applikationer med det.

Vad Hållbar Uppgift innebär

Hållbar uppgift inkluderar:

Användningsfall för kärnvaraktiga uppgifter

Använd Durable Task när programmet kräver tillförlitlig, långvarig arbetsflödesorkestrering mellan distribuerade tjänster. Vanliga scenarier är:

  • Långvariga processer: Durable Task kan hantera tillstånd och framsteg för processer som körs under längre perioder, trots avbrott eller fel. Exempel är orderbearbetning, datapipelines, maskininlärningsmodellträning och långvariga simuleringar.
  • Parallella och ut-ut-/ut-fan-in-scenarier: Durable Task kan samordna arbete som sprids ut över flera arbetare som körs parallellt på olika maskiner, och sedan aggregera resultaten. Exempel är bildbearbetning, map-reduce-jobb och ETL-arbetsflöden.
  • Orkestrera mikrotjänster och API:er: Durable Task kan samordna arbetet mellan distribuerade tjänster, API:er och datorer med komplex kontrollflöde och felhantering. Durable Task stöder också distribuerade transaktioner som använder saga-mönstret, där varje steg har kompenserande logik som körs automatiskt om ett senare steg misslyckas.
  • Automatisering av affärsprocesser: Durable Task kan automatisera komplexa, deterministiska affärsprocesser som involverar flera steg, beroenden, människa i loopen och felhantering över långa perioder. Exempel är hantering av leveranskedjan, dokumentgranskning, kundregistrering och identitetsverifiering.
  • Infrastrukturautomatisering: Durable Task kan hantera infrastrukturetablering, konfiguration och distribution med komplexa beroenden och felhantering. Exempel är hantering av molnresurser och CI/CD-pipelines.
  • Multiagent-orkestrering: Durable Task kan samordna arbetet hos flera AI-agenter, vilket säkerställer pålitlig uppgiftsföljning över långa tidshorisonter och effektiv tokenanvändning för komplexa, flerstegs AI-processer. Exempel är AI-agenter för djupforskning, kodning och kundsupport.

Ett återkommande tema i dessa scenarier är att de involverar arbete som är för komplext, för långdraget eller för distribuerat för att hanteras pålitligt med ad hoc-kod. Durable Task tillhandahåller de underliggande garantierna—persistens, feltolerans och stateful coordination—så att du kan uttrycka det arbetet som enkel kod.

Språk som stöds och modeller för Durable Task-värd

Durable Task stöder flera programmeringsspråk över två värdmodeller: Azure Functions (genom Durable Functions-tillägget) och självhostat (via de fristående Durable Task SDK:erna). Azure Functions-värdmodellen erbjuder en fullt hanterad, serverlös beräkningsmiljö med inbyggda skalnings- och orkestreringsfunktioner, medan den självhostade modellen stödjer att köra hållbara applikationer på vilken beräkningsplattform som helst, såsom Azure Container Apps, Azure Kubernetes Service, Azure App Service, eller virtuella maskiner.

Språk Azure Functions Lokalt installerad
.NET (C#/F#) Ja Ja
JavaScript/TypeScript Ja Ja
Python Ja Ja
Java Ja Ja
PowerShell Ja No

Anmärkning

Durable Task Go SDK finns också tillgängligt som ett communitystödd, öppen källkodsalternativ för självhostade scenarier, men är i experimentella faser och rekommenderas ännu inte för produktionsbruk.

Information om hur du väljer mellan Azure Functions och lokalt finns i Välj din värdmodell.

Hållbar uppgiftsarkitektur: SDK och tillståndslagringsbackend

Durable Task har två huvudlager: ett SDK som du använder i programkoden och en serverdel för tillståndslagring som hanterar tillståndet.

Hållbar uppgifts-SDK

Du använder Durable Task SDK för att skapa orkestreringar, aktiviteter och enheter i din applikationskod. Den hanterar internt mekaniken för varaktig exekvering – spelar upp orkestratorfunktioner, hanterar lokal exekveringskontext och kommunicerar med tillståndslagringsbackend. Durable Task erbjuder flera SDK-alternativ över de stödda språken och de två värdmodellerna: Azure Functions och självhostat.

Vägledning om hur du väljer mellan de här alternativen finns i Välj din värdmodell.

Tillståndslagringsserverdel

Tillståndslagringsbackend upprätthåller orkestreringstillståndet, upprätthåller exekveringshistoriken och koordinerar distribuerad skalning över beräkningsinstanser.

Det rekommenderade tillståndslagringsalternativet är Durable Task Scheduler – en fullt hanterad Azure-tjänst som är specialbyggd och starkt optimerad för arbetsbelastningar för Durable Task. Det fungerar med både Durable Functions och fristående Durable Task SDK:er och ger den rikaste uppsättningen funktioner utan lagringsinfrastruktur att hantera.

Alternativt stödjer Durable Functions flera bring-your-own (BYO) lagringsalternativ. Dessa alternativ ger dig mer kontroll över var du lagrar tillståndet, men kräver att du själv provisionerar och hanterar den underliggande infrastrukturen. BYO-lagringsserverdelar är för närvarande endast tillgängliga med Durable Functions.

Mer information om lagringsalternativ finns i Lagringsproviders.

Ytterligare resurser för varaktiga aktiviteter

Forskningspublikationer

Microsoft utvecklar Durable Task i samarbete med Microsoft Research. Som ett resultat producerar teamet forskningsartiklar och artefakter, inklusive:

Videoöversikt

Följande video lyfter fram fördelarna med Durable Functions:

Nästa steg