Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här referensen innehåller en omfattande mappning mellan den processbaserade SDK:t (2.x) och den isolerade arbets-SDK:t för Durable Functions. Använd den här sidan tillsammans med migreringsguiden när du uppdaterar koden.
Klient-API:er
| Pågående (2.x) | Isolerad arbetare |
|---|---|
IDurableOrchestrationClient |
DurableTaskClient |
IDurableOrchestrationClient.StartNewAsync |
DurableTaskClient.ScheduleNewOrchestrationInstanceAsync |
IDurableOrchestrationClient.GetStatusAsync |
DurableTaskClient.GetInstanceAsync |
IDurableOrchestrationClient.ListInstancesAsync |
DurableTaskClient.GetAllInstancesAsync |
IDurableOrchestrationClient.TerminateAsync |
DurableTaskClient.TerminateInstanceAsync |
IDurableOrchestrationClient.SuspendAsync |
DurableTaskClient.SuspendInstanceAsync |
IDurableOrchestrationClient.ResumeAsync |
DurableTaskClient.ResumeInstanceAsync |
IDurableOrchestrationClient.RaiseEventAsync |
DurableTaskClient.RaiseEventAsync |
IDurableOrchestrationClient.RewindAsync |
DurableTaskClient.RewindInstanceAsync |
IDurableOrchestrationClient.RestartAsync |
DurableTaskClient.RestartAsync |
IDurableOrchestrationClient.PurgeInstanceHistoryAsync |
DurableTaskClient.PurgeInstanceAsync eller PurgeAllInstancesAsync |
IDurableOrchestrationClient.CreateCheckStatusResponse |
DurableTaskClient.CreateCheckStatusResponseAsync (tilläggsmetod, tar HttpRequestData) |
IDurableOrchestrationClient.WaitForCompletionOrCreateCheckStatusResponseAsync |
DurableTaskClient.WaitForCompletionOrCreateCheckStatusResponseAsync (tilläggsmetod, timeout ersatt av CancellationToken) |
IDurableOrchestrationClient.CreateHttpManagementPayload |
DurableTaskClient.CreateHttpManagementPayload (tilläggsmetod) |
DurableOrchestrationStatus |
OrchestrationMetadata |
DurableOrchestrationStatus.History |
Har tagits bort från statusobjektet. Använd DurableTaskClient.GetOrchestrationHistoryAsync i stället. |
PurgeHistoryResult |
PurgeResult |
OrchestrationStatusQueryCondition |
OrchestrationQuery |
OrchestrationStatusQueryResult |
AsyncPageable<OrchestrationMetadata> |
Klient-API:er har tagits bort
Följande process-API:er har inte motsvarigheter i den isolerade arbets-SDK:t:
| API:et har tagits bort | Workaround |
|---|---|
IDurableOrchestrationClient.MakeCurrentAppPrimaryAsync |
Ingen motsvarighet |
IDurableOrchestrationClient.GetStatusAsync(IEnumerable<string>) |
Använda GetInstanceAsync i en loop eller GetAllInstancesAsync med ett frågefilter |
IDurableOrchestrationClient.PurgeInstanceHistoryAsync(IEnumerable<string>) |
Använda PurgeInstanceAsync i en loop eller PurgeAllInstancesAsync med ett filter |
Överlagringar mellan uppgiftshubbar (RaiseEventAsync, SignalEntityAsync, ReadEntityStateAsync med/taskHubNameconnectionName ) |
Endast åtgärder med samma uppgiftshubb stöds |
Api:er för entitetsklient
| Pågående (2.x) | Isolerad arbetare |
|---|---|
IDurableEntityClient.SignalEntityAsync |
DurableTaskClient.Entities.SignalEntityAsync |
IDurableEntityClient.ReadEntityStateAsync |
DurableTaskClient.Entities.GetEntityAsync |
IDurableEntityClient.ListEntitiesAsync |
DurableTaskClient.Entities.GetAllEntitiesAsync |
IDurableEntityClient.CleanEntityStorageAsync |
DurableTaskClient.Entities.CleanEntityStorageAsync (tar CleanEntityStorageRequest objekt i stället för boolparametrar) |
API:er för orkestreringskontext
| Pågående (2.x) | Isolerad arbetare |
|---|---|
IDurableOrchestrationContext |
TaskOrchestrationContext |
IDurableOrchestrationContext.InstanceId |
TaskOrchestrationContext.InstanceId |
IDurableOrchestrationContext.Name |
TaskOrchestrationContext.Name |
IDurableOrchestrationContext.CurrentUtcDateTime |
TaskOrchestrationContext.CurrentUtcDateTime |
IDurableOrchestrationContext.IsReplaying |
TaskOrchestrationContext.IsReplaying |
IDurableOrchestrationContext.NewGuid |
TaskOrchestrationContext.NewGuid |
IDurableOrchestrationContext.GetInput<T>() |
TaskOrchestrationContext.GetInput<T>() eller ange indata som en parameter: MyOrchestration([OrchestrationTrigger] TaskOrchestrationContext context, T input) |
IDurableOrchestrationContext.SetOutput |
Avlägsnad. Använd returvärdet från orchestrator-funktionen. |
IDurableOrchestrationContext.CallActivityAsync |
TaskOrchestrationContext.CallActivityAsync |
IDurableOrchestrationContext.CallActivityWithRetryAsync |
TaskOrchestrationContext.CallActivityAsync med en TaskOptions parameter för återförsöksinformation |
IDurableOrchestrationContext.CallSubOrchestratorAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync |
IDurableOrchestrationContext.CallSubOrchestratorWithRetryAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync med en TaskOptions parameter för återförsöksinformation |
IDurableOrchestrationContext.ContinueAsNew |
TaskOrchestrationContext.ContinueAsNew (se beteendeändringar för standardskillnader) |
IDurableOrchestrationContext.CallHttpAsync |
TaskOrchestrationContext.CallHttpAsync |
IDurableOrchestrationContext.CreateTimer<T>(DateTime, T, CancellationToken) |
TaskOrchestrationContext.CreateTimer(DateTime, CancellationToken). Tillståndsparametern har tagits bort. |
IDurableOrchestrationContext.WaitForExternalEvent(string) (icke-generisk) |
Avlägsnad. Använd WaitForExternalEvent<T>(string, CancellationToken). |
IDurableOrchestrationContext.WaitForExternalEvent<T>(string, TimeSpan, T) (med defaultValue) |
Avlägsnad. Använd WaitForExternalEvent<T>(string, TimeSpan, CancellationToken), som utlöser TaskCanceledException vid timeout. |
IDurableOrchestrationContext.ParentInstanceId |
TaskOrchestrationContext.Parent.InstanceId |
IDurableOrchestrationContext.CreateReplaySafeLogger(ILogger) |
TaskOrchestrationContext.CreateReplaySafeLogger<T>() eller TaskOrchestrationContext.CreateReplaySafeLogger(string) |
IDurableOrchestrationContext.CreateEntityProxy<T> |
Avlägsnad. Använd Entities.CallEntityAsync eller Entities.SignalEntityAsync direkt. |
IDurableOrchestrationContext.CallEntityAsync |
TaskOrchestrationContext.Entities.CallEntityAsync |
IDurableOrchestrationContext.SignalEntity |
TaskOrchestrationContext.Entities.SignalEntityAsync |
IDurableOrchestrationContext.LockAsync |
TaskOrchestrationContext.Entities.LockEntitiesAsync |
IDurableOrchestrationContext.IsLocked |
TaskOrchestrationContext.Entities.InCriticalSection() |
RetryOptions |
TaskOptions med TaskRetryOptions |
DurableActivityContext |
Ingen motsvarighet |
DurableActivityContext.GetInput<T>() |
Mata in indata som en parameter: MyActivity([ActivityTrigger] T input) |
DurableHttpRequest (WebJobs-namnområde) |
DurableHttpRequest (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http namnområde) |
DurableHttpResponse (WebJobs-namnområde) |
DurableHttpResponse (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http namnområde) |
Entitets-API:er
| Pågående (2.x) | Isolerad arbetare |
|---|---|
IDurableEntityContext |
TaskEntityContext |
IDurableEntityContext.EntityName |
TaskEntityContext.Id.Name |
IDurableEntityContext.EntityKey |
TaskEntityContext.Id.Key |
IDurableEntityContext.OperationName |
TaskEntityOperation.Name |
IDurableEntityContext.FunctionBindingContext |
Avlägsnad. Lägg till FunctionContext som indataparameter. |
IDurableEntityContext.HasState |
TaskEntityOperation.State.HasState |
IDurableEntityContext.GetState |
TaskEntityOperation.State.GetState |
IDurableEntityContext.SetState |
TaskEntityOperation.State.SetState |
IDurableEntityContext.DeleteState |
TaskEntityOperation.State.SetState(null) |
IDurableEntityContext.GetInput |
TaskEntityOperation.GetInput |
IDurableEntityContext.Return |
Avlägsnad. Använd metodens returvärde i stället. |
IDurableEntityContext.SignalEntity |
TaskEntityContext.SignalEntity. Schemalagda signaler använder SignalEntityOptions.SignalTime i stället för en DateTime parameteröverlagring. |
IDurableEntityContext.StartNewOrchestration |
TaskEntityContext.ScheduleNewOrchestration. Instans-ID anges via StartOrchestrationOptions.InstanceId i stället för en strängparameter. |
IDurableEntityContext.DispatchAsync |
TaskEntityDispatcher.DispatchAsync. Konstruktorparamer har tagits bort. använd standard-DI i stället. |
IDurableEntityContext.BatchSize |
Removed |
IDurableEntityContext.BatchPosition |
Removed |
Förändringar i beteende
Granska dessa icke-bakåtkompatibla beteendeändringar innan du testar din migrerade app.
Standardvärdet för serialisering har ändrats
Standard serialiseraren har ändrats från Newtonsoft.Json till System.Text.Json. Konfigurationsalternativ finns i Serialisering och beständighet i Durable Functions.
Varning
ContinueAsNy standardändring: Standardinställningen för parametern preserveUnprocessedEvents har ändrats från false (2.x) till true (isolerad). Om din orkestrering använder ContinueAsNew och förlitar sig på att obearbetade händelser kastas bort, skicka preserveUnprocessedEvents: false uttryckligen.
Note
RestartAsync standardändring: Standardinställningen för parametern restartWithNewInstanceId har ändrats från true (2.x) till false (isolerad). Om koden anropar RestartAsync och är beroende av att ett nytt instans-ID genereras, skickar du uttryckligen restartWithNewInstanceId: true.
Andra beteendeförändringar
-
Borttagning av entitetsproxy:
CreateEntityProxy<T>och de inskrivna delegeradeSignalEntityAsync<TEntityInterface>(Action<T>)överlagringarna är inte tillgängliga i den isolerade arbetaren. AnropaEntities.CallEntityAsyncellerEntities.SignalEntityAsyncdirekt med strängbaserade åtgärdsnamn i stället för att använda inskrivna proxygränssnitt. -
WaitForCompletionOrCreateCheckStatusResponseAsync: Parametern
timeouthar tagits bort. Använd enCancellationTokenmed en tidsgräns för annullering i stället. -
Åtgärder mellan uppgiftshubbar har tagits bort: De processöverlagringar som accepterades
taskHubNameochconnectionNameparametrarna är inte tillgängliga i isolerad arbetare. Endast operationer med samma task-hubb stöds. -
Batchåtgärder efter ID har tagits bort: Process-
GetStatusAsync(IEnumerable<string>)ochPurgeInstanceHistoryAsync(IEnumerable<string>)överlagringarna är inte tillgängliga. AnvändGetAllInstancesAsyncmed ettOrchestrationQueryfilter eller anropaGetInstanceAsync/PurgeInstanceAsyncindividuellt. -
Orkestreringshistoriken har flyttats:
DurableOrchestrationStatus.History(den inbäddadeJArray) är inte längre en del av statusobjektet. Använd det separataDurableTaskClient.GetOrchestrationHistoryAsyncAPI:et. -
Entity DispatchAsync-konstruktorparametrarna har tagits bort: Entitetsklasser aktiveras via standardberoendeinmatning. Registrera entitetens beroenden i
Program.cs. -
Ändringar i entitetens frågefilter:
EntityQuery.EntityNameersätts avEntityQuery.InstanceIdStartsWithochEntityQuery.IncludeDeletedersätts avEntityQuery.IncludeTransient. -
CleanEntityStorageAsync-signaturändring: Tar ett
CleanEntityStorageRequestobjekt medRemoveEmptyEntitiesochReleaseOrphanedLocksegenskaper i stället för boolparametrar. -
Nya API:er i isolerad arbetare:
DurableTaskClient.GetOrchestrationHistoryAsyncochTaskOrchestrationContext.GetFunctionContext()tilläggsmetoden har ingen motsvarighet i processen.