Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a hivatkozás átfogó leképezést biztosít a folyamatban lévő (2.x) SDK és a Durable Functions elkülönített feldolgozó SDK között. A kód frissítésekor használja ezt a lapot a migrálási útmutató mellett.
Ügyfél API-k
| Folyamatban (2.x) | Izolált munkavégző |
|---|---|
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 vagy PurgeAllInstancesAsync |
IDurableOrchestrationClient.CreateCheckStatusResponse |
DurableTaskClient.CreateCheckStatusResponseAsync (kiterjesztési metódus, fogad HttpRequestData) |
IDurableOrchestrationClient.WaitForCompletionOrCreateCheckStatusResponseAsync |
DurableTaskClient.WaitForCompletionOrCreateCheckStatusResponseAsync (kiterjesztési módszer, timeout helyébe CancellationToken) |
IDurableOrchestrationClient.CreateHttpManagementPayload |
DurableTaskClient.CreateHttpManagementPayload (bővítménymetódus) |
DurableOrchestrationStatus |
OrchestrationMetadata |
DurableOrchestrationStatus.History |
Eltávolítva az állapotobjektumból. A DurableTaskClient.GetOrchestrationHistoryAsync használható helyette. |
PurgeHistoryResult |
PurgeResult |
OrchestrationStatusQueryCondition |
OrchestrationQuery |
OrchestrationStatusQueryResult |
AsyncPageable<OrchestrationMetadata> |
Eltávolított ügyfél API-k
A következő folyamaton belüli API-k nem rendelkeznek egyenértékűkkel az izolált feldolgozó SDK-ban:
| Eltávolított API | Workaround |
|---|---|
IDurableOrchestrationClient.MakeCurrentAppPrimaryAsync |
Nincs egyenértékű |
IDurableOrchestrationClient.GetStatusAsync(IEnumerable<string>) |
Használat GetInstanceAsync ciklusban vagy GetAllInstancesAsync lekérdezésszűrővel |
IDurableOrchestrationClient.PurgeInstanceHistoryAsync(IEnumerable<string>) |
Használat PurgeInstanceAsync hurokban vagy PurgeAllInstancesAsync szűrővel |
Feladatközpontok közötti túlterhelések (RaiseEventAsync, SignalEntityAsync, ReadEntityStateAsync a taskHubName/connectionName) |
Csak az azonos feladatközponti műveletek támogatottak |
Entitásügyfél API-k
| Folyamatban (2.x) | Izolált munkavégző |
|---|---|
IDurableEntityClient.SignalEntityAsync |
DurableTaskClient.Entities.SignalEntityAsync |
IDurableEntityClient.ReadEntityStateAsync |
DurableTaskClient.Entities.GetEntityAsync |
IDurableEntityClient.ListEntitiesAsync |
DurableTaskClient.Entities.GetAllEntitiesAsync |
IDurableEntityClient.CleanEntityStorageAsync |
DurableTaskClient.Entities.CleanEntityStorageAsync (a bool-paraméterek helyett objektumot vesz CleanEntityStorageRequest fel) |
Vezénylési környezet API-k
| Folyamatban (2.x) | Izolált munkavégző |
|---|---|
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>() vagy bemenetet injektálhat paraméterként: MyOrchestration([OrchestrationTrigger] TaskOrchestrationContext context, T input) |
IDurableOrchestrationContext.SetOutput |
Eltávolított. Használja a vezénylő függvény visszatérési értékét. |
IDurableOrchestrationContext.CallActivityAsync |
TaskOrchestrationContext.CallActivityAsync |
IDurableOrchestrationContext.CallActivityWithRetryAsync |
TaskOrchestrationContext.CallActivityAsync egy TaskOptions paraméterrel az újrapróbálkozáshoz |
IDurableOrchestrationContext.CallSubOrchestratorAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync |
IDurableOrchestrationContext.CallSubOrchestratorWithRetryAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync egy TaskOptions paraméterrel az újrapróbálkozáshoz |
IDurableOrchestrationContext.ContinueAsNew |
TaskOrchestrationContext.ContinueAsNew (az alapértelmezett különbségek viselkedési változásainak megtekintése) |
IDurableOrchestrationContext.CallHttpAsync |
TaskOrchestrationContext.CallHttpAsync |
IDurableOrchestrationContext.CreateTimer<T>(DateTime, T, CancellationToken) |
TaskOrchestrationContext.CreateTimer(DateTime, CancellationToken). Az állapotparaméter el lett távolítva. |
IDurableOrchestrationContext.WaitForExternalEvent(string) (nem általános) |
Eltávolított. Használja a WaitForExternalEvent<T>(string, CancellationToken). |
IDurableOrchestrationContext.WaitForExternalEvent<T>(string, TimeSpan, T) (a defaultValue) |
Eltávolított. Használja a WaitForExternalEvent<T>(string, TimeSpan, CancellationToken) elemet, amely időtúllépés esetén TaskCanceledException kivételt dob. |
IDurableOrchestrationContext.ParentInstanceId |
TaskOrchestrationContext.Parent.InstanceId |
IDurableOrchestrationContext.CreateReplaySafeLogger(ILogger) |
TaskOrchestrationContext.CreateReplaySafeLogger<T>() vagy TaskOrchestrationContext.CreateReplaySafeLogger(string) |
IDurableOrchestrationContext.CreateEntityProxy<T> |
Eltávolított. Használja Entities.CallEntityAsync vagy Entities.SignalEntityAsync közvetlenül. |
IDurableOrchestrationContext.CallEntityAsync |
TaskOrchestrationContext.Entities.CallEntityAsync |
IDurableOrchestrationContext.SignalEntity |
TaskOrchestrationContext.Entities.SignalEntityAsync |
IDurableOrchestrationContext.LockAsync |
TaskOrchestrationContext.Entities.LockEntitiesAsync |
IDurableOrchestrationContext.IsLocked |
TaskOrchestrationContext.Entities.InCriticalSection() |
RetryOptions |
TaskOptions és TaskRetryOptions |
DurableActivityContext |
Nincs egyenértékű |
DurableActivityContext.GetInput<T>() |
Bemenet injektálása paraméterként: MyActivity([ActivityTrigger] T input) |
DurableHttpRequest (WebJobs-névtér) |
DurableHttpRequest (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http névtér) |
DurableHttpResponse (WebJobs-névtér) |
DurableHttpResponse (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http névtér) |
Entitás API-k
| Folyamatban (2.x) | Izolált munkavégző |
|---|---|
IDurableEntityContext |
TaskEntityContext |
IDurableEntityContext.EntityName |
TaskEntityContext.Id.Name |
IDurableEntityContext.EntityKey |
TaskEntityContext.Id.Key |
IDurableEntityContext.OperationName |
TaskEntityOperation.Name |
IDurableEntityContext.FunctionBindingContext |
Eltávolított. Adja hozzá FunctionContext bemeneti paraméterként. |
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 |
Eltávolított. Használja inkább a metódus visszatérési értékét. |
IDurableEntityContext.SignalEntity |
TaskEntityContext.SignalEntity. Az ütemezett jelek paraméter-túlterhelés helyett SignalEntityOptions.SignalTime használhatókDateTime. |
IDurableEntityContext.StartNewOrchestration |
TaskEntityContext.ScheduleNewOrchestration. A példányazonosító StartOrchestrationOptions.InstanceId segítségével van beállítva egy sztringparaméter helyett. |
IDurableEntityContext.DispatchAsync |
TaskEntityDispatcher.DispatchAsync. A konstruktor paramjai el lettek távolítva; helyett használjon standard DI-t. |
IDurableEntityContext.BatchSize |
Removed |
IDurableEntityContext.BatchPosition |
Removed |
Viselkedési változások
A migrált alkalmazás tesztelése előtt tekintse át ezeket a kompatibilitástörő viselkedésbeli változásokat.
A szerializálás alapértelmezett módosítása
Az alapértelmezett szerializáló a következőre Newtonsoft.JsonSystem.Text.Jsonváltozott: . A konfigurációs beállításokért lásd: Serialization és persistence in Durable Functions.
Warning
ContinueAsNew alapértelmezett változás: Az preserveUnprocessedEvents paraméter alapértelmezett értéke megváltozott false (2.x)-ről true (izolált)-ra. Ha az orchestráció ContinueAsNew és a feldolgozatlan események elvetésére támaszkodik, adja át explicit módon a preserveUnprocessedEvents: false.
Note
RestartAsync alapértelmezett módosítása: Az restartWithNewInstanceId paraméter alapértelmezése megváltozott a true (2.x) értékről false (izolált) értékre. Ha a kód meghívja RestartAsync, és függ attól, hogy új példányazonosító generálódjon, akkor explicit módon adja át restartWithNewInstanceId: true.
Egyéb viselkedésbeli változások
-
Entitásproxy eltávolítása:
CreateEntityProxy<T>és a típusos delegáltSignalEntityAsync<TEntityInterface>(Action<T>)túlterhelések nem állnak rendelkezésre az izolált feldolgozóban. Sztringalapú műveletnevek hívásaEntities.CallEntityAsyncvagyEntities.SignalEntityAsyncközvetlen használata gépelt proxyillesztők használata helyett. -
WaitForCompletionOrCreateCheckStatusResponseAsync: A
timeoutparaméter el lett távolítva. Használjon inkábbCancellationTokenlemondási időkorlátot. -
A feladatközpontok közötti műveletek el lettek távolítva: Az elfogadott folyamaton belüli túlterhelések és
taskHubNameparaméterek nem érhetők el az izoláltconnectionNamefeldolgozóban. Csak az azonos feladatközponti műveletek támogatottak. -
A kötegelt műveletek azonosító alapján el lettek távolítva: A folyamatban
GetStatusAsync(IEnumerable<string>)lévő ésPurgeInstanceHistoryAsync(IEnumerable<string>)a túlterhelések nem érhetők el. Használja aGetAllInstancesAsyncelemetOrchestrationQueryszűrővel, vagy hívja meg aGetInstanceAsync/PurgeInstanceAsyncelemeket egyenként. -
A vezénylési előzmények áthelyezve:
DurableOrchestrationStatus.History(a beágyazottJArray) már nem része az állapotobjektumnak. Használja a különDurableTaskClient.GetOrchestrationHistoryAsyncAPI-t. -
Az Entity DispatchAsync konstruktor paramjai el lettek távolítva: Az entitásosztályok a standard függőséginjektáláson keresztül aktiválódnak. Regisztrálja az entitás függőségeit a következőben
Program.cs: . - Az entitás lekérdezési szűrője megváltozik: fel lesz cserélve
EntityQuery.EntityName-re, ésEntityQuery.InstanceIdStartsWithfel lesz cserélveEntityQuery.IncludeDeleted-re. -
CleanEntityStorageAsync aláírás módosítása: A bool paraméterek helyett egy
CleanEntityStorageRequestobjektumotRemoveEmptyEntitieshasznál ésReleaseOrphanedLockstulajdonságokat használ. -
Új API-k izolált feldolgozóban:
DurableTaskClient.GetOrchestrationHistoryAsyncés aTaskOrchestrationContext.GetFunctionContext()bővítménymetódus nem rendelkezik a folyamaton belüli egyenértékűségével.