إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يوفر هذا المرجع تعيينا شاملا بين SDK قيد المعالجة (2.x) وSDK العامل المعزول Durable Functions. استخدم هذه الصفحة جنبا إلى جنب مع دليل الترحيل عند تحديث التعليمات البرمجية الخاصة بك.
واجهات برمجة التطبيقات (API) للعميل
| قيد المعالجة (2.x) | عامل معزول |
|---|---|
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 او PurgeAllInstancesAsync |
IDurableOrchestrationClient.CreateCheckStatusResponse |
DurableTaskClient.CreateCheckStatusResponseAsync (طريقة الامتداد، تأخذ HttpRequestData) |
IDurableOrchestrationClient.WaitForCompletionOrCreateCheckStatusResponseAsync |
DurableTaskClient.WaitForCompletionOrCreateCheckStatusResponseAsync (طريقة الامتداد، استبدلت timeout ب CancellationToken) |
IDurableOrchestrationClient.CreateHttpManagementPayload |
DurableTaskClient.CreateHttpManagementPayload (طريقة الامتداد) |
DurableOrchestrationStatus |
OrchestrationMetadata |
DurableOrchestrationStatus.History |
تمت إزالتها من كائن الحالة. استخدم DurableTaskClient.GetOrchestrationHistoryAsync بدلاً من ذلك. |
PurgeHistoryResult |
PurgeResult |
OrchestrationStatusQueryCondition |
OrchestrationQuery |
OrchestrationStatusQueryResult |
AsyncPageable<OrchestrationMetadata> |
واجهات برمجة تطبيقات العميل التي تمت إزالتها
لا تحتوي واجهات برمجة التطبيقات التالية قيد المعالجة على مكافئات في SDK العامل المعزول:
| تم إزالة واجهة برمجة التطبيقات | بديل مؤقت |
|---|---|
IDurableOrchestrationClient.MakeCurrentAppPrimaryAsync |
لا يوجد ما يعادل |
IDurableOrchestrationClient.GetStatusAsync(IEnumerable<string>) |
استخدام GetInstanceAsync في حلقة أو GetAllInstancesAsync مع عامل تصفية استعلام |
IDurableOrchestrationClient.PurgeInstanceHistoryAsync(IEnumerable<string>) |
استخدام PurgeInstanceAsync في حلقة أو PurgeAllInstancesAsync مع عامل تصفية |
التحميلات الزائدة عبر مركز المهام (RaiseEventAsync، SignalEntityAsync، ReadEntityStateAsync معtaskHubName/connectionName ) |
يتم دعم عمليات مركز المهام نفسها فقط |
واجهات برمجة تطبيقات عميل الكيان
| قيد المعالجة (2.x) | عامل معزول |
|---|---|
IDurableEntityClient.SignalEntityAsync |
DurableTaskClient.Entities.SignalEntityAsync |
IDurableEntityClient.ReadEntityStateAsync |
DurableTaskClient.Entities.GetEntityAsync |
IDurableEntityClient.ListEntitiesAsync |
DurableTaskClient.Entities.GetAllEntitiesAsync |
IDurableEntityClient.CleanEntityStorageAsync |
DurableTaskClient.Entities.CleanEntityStorageAsync (يأخذ CleanEntityStorageRequest الكائن بدلا من معاملات البول) |
واجهات برمجة تطبيقات سياق التنسيق
| قيد المعالجة (2.x) | عامل معزول |
|---|---|
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>() أو حقن الإدخال كمعامل: MyOrchestration([OrchestrationTrigger] TaskOrchestrationContext context, T input) |
IDurableOrchestrationContext.SetOutput |
تمت إزالتها. استخدم قيمة الإرجاع من دالة المنسق. |
IDurableOrchestrationContext.CallActivityAsync |
TaskOrchestrationContext.CallActivityAsync |
IDurableOrchestrationContext.CallActivityWithRetryAsync |
TaskOrchestrationContext.CallActivityAsync مع معلمة TaskOptions لتفاصيل إعادة المحاولة |
IDurableOrchestrationContext.CallSubOrchestratorAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync |
IDurableOrchestrationContext.CallSubOrchestratorWithRetryAsync |
TaskOrchestrationContext.CallSubOrchestratorAsync مع معلمة TaskOptions لتفاصيل إعادة المحاولة |
IDurableOrchestrationContext.ContinueAsNew |
TaskOrchestrationContext.ContinueAsNew (راجع التغييرات السلوكية للاختلافات الافتراضية) |
IDurableOrchestrationContext.CallHttpAsync |
TaskOrchestrationContext.CallHttpAsync |
IDurableOrchestrationContext.CreateTimer<T>(DateTime, T, CancellationToken) |
TaskOrchestrationContext.CreateTimer(DateTime, CancellationToken). تم إزالة معامل الدولة. |
IDurableOrchestrationContext.WaitForExternalEvent(string) (غير عام) |
تمت إزالتها. استخدم WaitForExternalEvent<T>(string, CancellationToken). |
IDurableOrchestrationContext.WaitForExternalEvent<T>(string, TimeSpan, T) (مع defaultValue) |
تمت إزالتها. استخدم WaitForExternalEvent<T>(string, TimeSpan, CancellationToken)، مما يسبب TaskCanceledException وقت مستقطع. |
IDurableOrchestrationContext.ParentInstanceId |
TaskOrchestrationContext.Parent.InstanceId |
IDurableOrchestrationContext.CreateReplaySafeLogger(ILogger) |
TaskOrchestrationContext.CreateReplaySafeLogger<T>() او TaskOrchestrationContext.CreateReplaySafeLogger(string) |
IDurableOrchestrationContext.CreateEntityProxy<T> |
تمت إزالتها. استخدم Entities.CallEntityAsync أو Entities.SignalEntityAsync بشكل مباشر. |
IDurableOrchestrationContext.CallEntityAsync |
TaskOrchestrationContext.Entities.CallEntityAsync |
IDurableOrchestrationContext.SignalEntity |
TaskOrchestrationContext.Entities.SignalEntityAsync |
IDurableOrchestrationContext.LockAsync |
TaskOrchestrationContext.Entities.LockEntitiesAsync |
IDurableOrchestrationContext.IsLocked |
TaskOrchestrationContext.Entities.InCriticalSection() |
RetryOptions |
TaskOptions مع TaskRetryOptions |
DurableActivityContext |
لا يوجد ما يعادل |
DurableActivityContext.GetInput<T>() |
حقن الإدخال كمعامل: MyActivity([ActivityTrigger] T input) |
DurableHttpRequest (مساحة أسماء WebJobs) |
DurableHttpRequest (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http مساحة الاسم) |
DurableHttpResponse (مساحة أسماء WebJobs) |
DurableHttpResponse (Microsoft.Azure.Functions.Worker.Extensions.DurableTask.Http مساحة الاسم) |
واجهات برمجة التطبيقات الكيانية
| قيد المعالجة (2.x) | عامل معزول |
|---|---|
IDurableEntityContext |
TaskEntityContext |
IDurableEntityContext.EntityName |
TaskEntityContext.Id.Name |
IDurableEntityContext.EntityKey |
TaskEntityContext.Id.Key |
IDurableEntityContext.OperationName |
TaskEntityOperation.Name |
IDurableEntityContext.FunctionBindingContext |
تمت إزالتها. إضافة 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 |
تمت إزالتها. استخدم قيمة إرجاع الطريقة بدلا من ذلك. |
IDurableEntityContext.SignalEntity |
TaskEntityContext.SignalEntity. تستخدم SignalEntityOptions.SignalTime الإشارات المجدولة بدلا من DateTime تحميل زائد المعلمات. |
IDurableEntityContext.StartNewOrchestration |
TaskEntityContext.ScheduleNewOrchestration. يتم تعيين معرف المثيل بواسطة بدلا StartOrchestrationOptions.InstanceId من معامل سلسلة. |
IDurableEntityContext.DispatchAsync |
TaskEntityDispatcher.DispatchAsync. تمت إزالة معلمات البناء؛ استخدم DI القياسي بدلا من ذلك. |
IDurableEntityContext.BatchSize |
تمت الإزالة |
IDurableEntityContext.BatchPosition |
تمت الإزالة |
التغيرات السلوكية
راجع تغييرات سلوك التوقف هذه قبل اختبار التطبيق الذي تم ترحيله.
تم تغيير التسلسل الافتراضي
تم تغيير المحول التسلسلي الافتراضي من Newtonsoft.Json إلى System.Text.Json. للحصول على خيارات التكوين، راجع Serialization والمثابرة في Durable Functions.
تحذير
تغيير الإعداد الافتراضي ContinueAsNew: تغير الإعداد preserveUnprocessedEvents الافتراضي للمعلمة من false (2.x) إلى true (معزول). إذا كان تنسيقك يستخدم ContinueAsNew ويعتمد على التخلص من أحداث غير معالجة، فرفض preserveUnprocessedEvents: falseبشكل صريح .
إشعار
تغيير الإعداد الافتراضي RestartAsync: تغير الوضع restartWithNewInstanceId الافتراضي للمعلمات من true (2.x) إلى false (معزول). إذا كان كودك يستدعي RestartAsync ويعتمد على معرف مثيل جديد يتم توليده، قم بتمرير restartWithNewInstanceId: true.
تغييرات سلوكية أخرى
-
إزالة وكيل الكيان:
CreateEntityProxy<T>وتحميل المندوبين المكتوبSignalEntityAsync<TEntityInterface>(Action<T>)على الأنواع غير متاحة في العامل المعزول. استدعاءEntities.CallEntityAsyncأوEntities.SignalEntityAsyncمباشرة باستخدام أسماء العمليات النصية بدلا من استخدام واجهات وكيل مكتوبة. -
انتظر ForCompletionOrCreateCheckStatusResponseAsync: تمت إزالة المعاملة
timeout. استخدم ACancellationTokenمع مهلة إلغاء بدلا من ذلك. -
تمت إزالة العمليات عبر مركز المهام: التحميلات الزائدة قيد المعالجة التي قبلت
taskHubNameوالمعلماتconnectionNameغير متوفرة في العامل المعزول. يتم دعم عمليات مركز المهام نفسها فقط. -
تمت إزالة عمليات الدفعة حسب المعرف: لا تتوفر التحميلات الزائدة والتحميلات
GetStatusAsync(IEnumerable<string>)قيد المعالجةPurgeInstanceHistoryAsync(IEnumerable<string>). استخدمGetAllInstancesAsyncباستخدامOrchestrationQueryفلتر أو اتصلGetInstanceAsync/PurgeInstanceAsyncبشكل فردي. -
تم نقل تاريخ التوزيع الموسيقي:
DurableOrchestrationStatus.History(التضمينJArray) لم يعد جزءا من كائن الحالة. استخدم واجهة برمجة التطبيقات المنفصلةDurableTaskClient.GetOrchestrationHistoryAsync. -
تمت إزالة معلمات منشئ Entity DispatchAsync: يتم تنشيط فئات الكيان من خلال إدخال التبعية القياسية. سجل تبعيات الكيان الخاص بك في
Program.cs. -
تغييرات مرشح استعلام الكيان:
EntityQuery.EntityNameيتم استبداله بEntityQuery.InstanceIdStartsWith، وEntityQuery.IncludeDeletedيستبدل بEntityQuery.IncludeTransient. -
تغيير توقيع CleanEntityStorageAsync: يأخذ كائنا
CleanEntityStorageRequestمعRemoveEmptyEntitiesخصائص وReleaseOrphanedLocksبدلا من معلمات bool. -
واجهات برمجة التطبيقات الجديدة في العامل المعزول:
DurableTaskClient.GetOrchestrationHistoryAsyncوطريقة الملحقTaskOrchestrationContext.GetFunctionContext()ليس لها ما يعادل في العملية.
المحتوى ذو الصلة
- دليل الترحيل : Durable Functions من قيد المعالجة إلى عامل معزول
- التسلسل والاستمرار في Durable Functions
- مرجع In-process SDK API (
Microsoft.Azure.WebJobs.Extensions.DurableTask) - مرجع واجهة برمجة تطبيقات SDK للعامل (
Microsoft.DurableTask)