Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu başvuru, Dayanıklı İşlevler için işlem içi (2.x) SDK ile yalıtılmış çalışan SDK'sı arasında kapsamlı bir eşleme sağlar. Kodunuzu güncelleştirirken geçiş kılavuzunun yanı sıra bu sayfayı kullanın.
İstemci API'leri
| İşlem içi (2.x) | Yalıtılmış çalışan |
|---|---|
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 veya PurgeAllInstancesAsync |
IDurableOrchestrationClient.CreateCheckStatusResponse |
DurableTaskClient.CreateCheckStatusResponseAsync (uzantı yöntemi, alır HttpRequestData) |
IDurableOrchestrationClient.WaitForCompletionOrCreateCheckStatusResponseAsync |
DurableTaskClient.WaitForCompletionOrCreateCheckStatusResponseAsync (uzantı yöntemi, timeout ile CancellationTokendeğiştirilir) |
IDurableOrchestrationClient.CreateHttpManagementPayload |
DurableTaskClient.CreateHttpManagementPayload (uzantı yöntemi) |
DurableOrchestrationStatus |
OrchestrationMetadata |
DurableOrchestrationStatus.History |
Durum nesnesinden kaldırıldı. Bunun yerine DurableTaskClient.GetOrchestrationHistoryAsync kullanın. |
PurgeHistoryResult |
PurgeResult |
OrchestrationStatusQueryCondition |
OrchestrationQuery |
OrchestrationStatusQueryResult |
AsyncPageable<OrchestrationMetadata> |
İstemci API'leri kaldırıldı
Aşağıdaki işlem içi API'lerin yalıtılmış çalışan SDK'sında eşdeğerleri yoktur:
| API kaldırıldı | Workaround |
|---|---|
IDurableOrchestrationClient.MakeCurrentAppPrimaryAsync |
Eşdeğeri yok |
IDurableOrchestrationClient.GetStatusAsync(IEnumerable<string>) |
Döngüde veya GetAllInstancesAsync sorgu filtresiyle kullanma GetInstanceAsync |
IDurableOrchestrationClient.PurgeInstanceHistoryAsync(IEnumerable<string>) |
Döngüde veya PurgeAllInstancesAsync filtreyle kullanma PurgeInstanceAsync |
Çapraz görev hub'ı aşırı yüklemeleri (RaiseEventAsync, SignalEntityAsyncile taskHubName/ReadEntityStateAsyncconnectionName) |
Yalnızca aynı görev hub'ı işlemleri desteklenir |
Varlık istemcisi API'leri
| İşlem içi (2.x) | Yalıtılmış çalışan |
|---|---|
IDurableEntityClient.SignalEntityAsync |
DurableTaskClient.Entities.SignalEntityAsync |
IDurableEntityClient.ReadEntityStateAsync |
DurableTaskClient.Entities.GetEntityAsync |
IDurableEntityClient.ListEntitiesAsync |
DurableTaskClient.Entities.GetAllEntitiesAsync |
IDurableEntityClient.CleanEntityStorageAsync |
DurableTaskClient.Entities.CleanEntityStorageAsync (bool parametreleri yerine nesne alır CleanEntityStorageRequest ) |
Orkestrasyon bağlam API'leri
| İşlem içi (2.x) | Yalıtılmış çalışan |
|---|---|
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>() veya girişi parametre olarak enjekte edin: MyOrchestration([OrchestrationTrigger] TaskOrchestrationContext context, T input) |
IDurableOrchestrationContext.SetOutput |
Kaldırıldı. Orchestrator işlevinden dönüş değerini kullanın. |
IDurableOrchestrationContext.CallActivityAsync |
TaskOrchestrationContext.CallActivityAsync |
IDurableOrchestrationContext.CallActivityWithRetryAsync |
TaskOrchestrationContext.CallActivityAsync yeniden deneme ayrıntıları için bir TaskOptions parametre ile |
IDurableOrchestrationContext.CallSubOrchestratorAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync |
IDurableOrchestrationContext.CallSubOrchestratorWithRetryAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync yeniden deneme ayrıntıları için bir TaskOptions parametre ile |
IDurableOrchestrationContext.ContinueAsNew |
TaskOrchestrationContext.ContinueAsNew (varsayılan farklar için davranış değişikliklerine bakın) |
IDurableOrchestrationContext.CallHttpAsync |
TaskOrchestrationContext.CallHttpAsync |
IDurableOrchestrationContext.CreateTimer<T>(DateTime, T, CancellationToken) |
TaskOrchestrationContext.CreateTimer(DateTime, CancellationToken). Durum parametresi kaldırıldı. |
IDurableOrchestrationContext.WaitForExternalEvent(string) (genel olmayan) |
Kaldırıldı.
WaitForExternalEvent<T>(string, CancellationToken) adresini kullanın. |
IDurableOrchestrationContext.WaitForExternalEvent<T>(string, TimeSpan, T) (ile defaultValue) |
Kaldırıldı.
WaitForExternalEvent<T>(string, TimeSpan, CancellationToken) kullanın, bu zaman aşımında TaskCanceledException fırlatır. |
IDurableOrchestrationContext.ParentInstanceId |
TaskOrchestrationContext.Parent.InstanceId |
IDurableOrchestrationContext.CreateReplaySafeLogger(ILogger) |
TaskOrchestrationContext.CreateReplaySafeLogger<T>() veya TaskOrchestrationContext.CreateReplaySafeLogger(string) |
IDurableOrchestrationContext.CreateEntityProxy<T> |
Kaldırıldı.
Entities.CallEntityAsync Veya doğrudan kullanınEntities.SignalEntityAsync. |
IDurableOrchestrationContext.CallEntityAsync |
TaskOrchestrationContext.Entities.CallEntityAsync |
IDurableOrchestrationContext.SignalEntity |
TaskOrchestrationContext.Entities.SignalEntityAsync |
IDurableOrchestrationContext.LockAsync |
TaskOrchestrationContext.Entities.LockEntitiesAsync |
IDurableOrchestrationContext.IsLocked |
TaskOrchestrationContext.Entities.InCriticalSection() |
RetryOptions |
TaskOptions ile TaskRetryOptions |
DurableActivityContext |
Eşdeğeri yok |
DurableActivityContext.GetInput<T>() |
Girdiyi parametre olarak enjekte et: MyActivity([ActivityTrigger] T input) |
DurableHttpRequest (WebJobs ad alanı) |
DurableHttpRequest (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http ad alanı) |
DurableHttpResponse (WebJobs ad alanı) |
DurableHttpResponse (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http ad alanı) |
Varlık API'leri
| İşlem içi (2.x) | Yalıtılmış çalışan |
|---|---|
IDurableEntityContext |
TaskEntityContext |
IDurableEntityContext.EntityName |
TaskEntityContext.Id.Name |
IDurableEntityContext.EntityKey |
TaskEntityContext.Id.Key |
IDurableEntityContext.OperationName |
TaskEntityOperation.Name |
IDurableEntityContext.FunctionBindingContext |
Kaldırıldı. Giriş parametresi olarak ekleyin FunctionContext . |
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 |
Kaldırıldı. Bunun yerine yöntem dönüş değerini kullanın. |
IDurableEntityContext.SignalEntity |
TaskEntityContext.SignalEntity. Zamanlanmış sinyaller parametre aşırı yüklemesi yerine SignalEntityOptions.SignalTime kullanırDateTime. |
IDurableEntityContext.StartNewOrchestration |
TaskEntityContext.ScheduleNewOrchestration. Örnek kimliği, bir dize parametresi yerine StartOrchestrationOptions.InstanceId aracılığıyla ayarlanır. |
IDurableEntityContext.DispatchAsync |
TaskEntityDispatcher.DispatchAsync. Oluşturucu parametreleri kaldırıldı; yerine standart DI kullanın. |
IDurableEntityContext.BatchSize |
Removed |
IDurableEntityContext.BatchPosition |
Removed |
Davranış değişiklikleri
Geçirilen uygulamanızı test etmeden önce bu hataya neden olan davranış değişikliklerini gözden geçirin.
Serileştirme varsayılanı değiştirildi
Varsayılan seri hale getirici olarak Newtonsoft.JsonSystem.Text.Jsondeğiştirildi. Yapılandırma seçenekleri için bkz. Serialization and persistence in Dayanıklı İşlevler.
Uyarı
ContinueAsNew varsayılan değişikliği: Parametre preserveUnprocessedEvents varsayılanı (2.x) olan false (yalıtılmış) true olarak değiştirildi. Düzenlemeniz ContinueAsNew kullanıyorsa ve işlenmemiş olayların atılmasına bağlıysa, açıkça preserveUnprocessedEvents: false'i geçirmeniz gerek.
Uyarı
RestartAsync varsayılan değişikliği: Parametre restartWithNewInstanceId varsayılanı (2.x) olan true (yalıtılmış) false olarak değiştirildi. Kodunuz RestartAsync çağırırsa ve bu, yeni bir örnek kimliğinin oluşturulmasına bağlıysa, restartWithNewInstanceId: true'i açıkça geçirin.
Diğer davranış değişiklikleri
-
Varlık ara sunucusunu kaldırma:
CreateEntityProxy<T>ve tipliSignalEntityAsync<TEntityInterface>(Action<T>)temsilci aşırı yüklemeleri yalıtılmış çalışanda kullanılamaz.Entities.CallEntityAsyncveyaEntities.SignalEntityAsyncöğelerini doğrudan dize tabanlı işlem adlarıyla çağırın, yazılan ara sunucu arabirimlerini kullanmak yerine. -
WaitForCompletionOrCreateCheckStatusResponseAsync:
timeoutParametresi kaldırıldı. Bunun yerine bir iptal zaman aşımı ileCancellationTokenkullanın. -
Görevler arası hub işlemleri kaldırıldı: Kabul edilen
taskHubNameişlem içi aşırı yüklemeler veconnectionNameparametreler yalıtılmış çalışanda kullanılamaz. Yalnızca aynı görev merkezli hub işlemleri desteklenir. -
Kimliğe göre toplu işlemler kaldırıldı: İşlem
GetStatusAsync(IEnumerable<string>)içi vePurgeInstanceHistoryAsync(IEnumerable<string>)aşırı yüklemeler kullanılamaz. Tek başınaGetAllInstancesAsyncveyaOrchestrationQueryfiltresiyle çağrıyıGetInstanceAsync/PurgeInstanceAsynckullanın. -
Düzenleme geçmişi taşındı:
DurableOrchestrationStatus.History(eklenmişJArray) artık durum nesnesinin bir parçası değil. AyrıDurableTaskClient.GetOrchestrationHistoryAsyncAPI'yi kullanın. -
Entity DispatchAsync oluşturucu parametreleri kaldırıldı: Varlık sınıfları standart bağımlılık ekleme yoluyla etkinleştirilir. Varlığınızın bağımlılıklarını
Program.csiçinde kaydedin. -
Varlık sorgusu filtresi değişiklikleri:
EntityQuery.EntityNameile değiştirilirEntityQuery.InstanceIdStartsWithveEntityQuery.IncludeDeletedile değiştirilirEntityQuery.IncludeTransient. -
CleanEntityStorageAsync imza değişikliği: Bool parametreleri yerine ve
ReleaseOrphanedLocksözelliklerine sahipRemoveEmptyEntitiesbirCleanEntityStorageRequestnesne alır. -
Yalıtılmış çalışandaki yeni API'ler:
DurableTaskClient.GetOrchestrationHistoryAsyncve uzantı yöntemininTaskOrchestrationContext.GetFunctionContext()işlem içi eşdeğeri yoktur.