إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
مركز المهام هو تمثيل للحالة الحالية للتطبيق في المخزن، بما في ذلك جميع الأعمال المعلقة. أثناء تشغيل التطبيق، يقوم مركز المهام بتخزين تقدم التنسيق والنشاط ووظائف الكيانات باستمرار. يضمن هذا النهج أن التطبيق يمكنه استئناف المعالجة من حيث توقفت إذا أعيد التشغيل بعد إيقافه مؤقتا أو مقاطعته. كما يمكن مركز المهام التطبيقات من توسيع عدد العاملين في الحوسبة بشكل ديناميكي.
تشرح هذه المقالة ما يخزنه مركز المهام، وكيفية تكوين وتسمية مراكز المهام، وكيفية إنشائها وإدارتها باستخدام خلفيات تخزين مختلفة، وكيف تعالج مراكز المهام العمل داخليا.
مهم
سينتهي الدعم للنموذج قيد التنفيذ في 10 نوفمبر 2026. نوصي بشدة بترحيل تطبيقاتك إلى نموذج العامل المعزول للحصول على الدعم الكامل.
من الناحية المفاهيمية، يخزن مركز المهام المعلومات التالية:
- حالات المثيل لجميع حالات التوزيع والكيانات.
- الرسائل التي سيتم معالجتها، بما في ذلك:
- أي رسائل نشاط تمثل أنشطة تنتظر أن تعمل.
- أي رسائل مثيلات تنتظر التسليم إلى النسخ.
رسائل النشاط بدون حالة ويمكن معالجتها في أي مكان. يجب تسليم رسائل المثيل إلى حالة معينة (تنسيق أو كيان)، يتم تحديده بواسطة معرف النسخة الخاص به.
داخليا، قد يستخدم كل مزود تخزين منظمة مختلفة لتمثيل حالات المثيل والرسائل. على سبيل المثال، يقوم مزود تخزين Azure بتخزين الرسائل في قوائم تخزين Azure Queues، بينما يخزنها مزود MSSQL في جداول علائقية. هذه الاختلافات لا تهم تصميم التطبيقات، لكن بعضها قد يؤثر على خصائص الأداء. لمزيد من المعلومات، انظر التمثيل في التخزين.
تستخدم مجموعات تطوير المهام المتطورة جدولة المهام المتطورة كواجهة خلفية لمراكز المهام. جدولة المهام المتطورة هي خدمة مدارة بالكامل تتعامل مع التخزين داخليا.
أسماء مراكز المهام
يتم تحديد مراكز المهام باسم يتوافق مع هذه القواعد:
- يحتوي فقط على الأحرف الأبجدية الرقمية
- يبدأ بحرف
- يبلغ طوله الأدنى 3 حروف، وأقصى طول 45 حرفا
أعلن عن اسم مركز المهام في ملف host.json ، كما هو موضح في المثال التالي:
host.json (الدوال 2.0)
{
"version": "2.0",
"extensions": {
"durableTask": {
"hubName": "MyTaskHub"
}
}
}
host.json (الدوال 1.x)
{
"durableTask": {
"hubName": "MyTaskHub"
}
}
يمكنك أيضا إعداد مراكز المهام باستخدام إعدادات التطبيق، كما هو موضح في ملف المثال التالي host.json :
host.json (الدوال 2.0)
{
"version": "2.0",
"extensions": {
"durableTask": {
"hubName": "%MyTaskHub%"
}
}
}
host.json (الدوال 1.x)
{
"durableTask": {
"hubName": "%MyTaskHub%"
}
}
اسم مركز المهام مضبوط على قيمة MyTaskHub إعداد التطبيق. يوضح الملف التالي local.settings.json كيفية تعريف الإعداد MyTaskHub ك samplehubname:
{
"IsEncrypted": false,
"Values": {
"MyTaskHub" : "samplehubname"
}
}
ملحوظة
عند استخدام فتحات النشر، من الأفضل إعداد اسم مركز المهام باستخدام إعدادات التطبيق. إذا أردت التأكد من أن خانة معينة تستخدم دائما مركز مهام معين، استخدم إعدادات التطبيق "slot-sticky".
بالإضافة إلى host.json، يمكن أيضا إعداد أسماء مراكز المهام في بيانات تعريف ربط عميل التنسيق . هذا الإعداد مفيد عندما تحتاج للوصول إلى التنسيقات أو الكيانات التي تعيش في تطبيق وظيفي منفصل. الكود التالي يوضح كيفية كتابة دالة تستخدم ربط عميل التنسيق للعمل مع مركز مهام تم إعداده كإعداد تطبيق:
نموذج العامل المعزول
[Function("HttpStart")]
public static async Task<HttpResponseData> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "orchestrators/{functionName}")] HttpRequestData req,
[DurableClient(TaskHub = "%MyTaskHub%")] DurableTaskClient starter,
string functionName,
FunctionContext executionContext)
{
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
string instanceId = await starter.ScheduleNewOrchestrationInstanceAsync(functionName, requestBody);
ILogger logger = executionContext.GetLogger("HttpStart");
logger.LogInformation("Started orchestration with ID = '{instanceId}'.", instanceId);
return await starter.CreateCheckStatusResponseAsync(req, instanceId);
}
النموذج أثناء العملية
[FunctionName("HttpStart")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Function, methods: "post", Route = "orchestrators/{functionName}")] HttpRequestMessage req,
[DurableClient(TaskHub = "%MyTaskHub%")] IDurableOrchestrationClient starter,
string functionName,
ILogger log)
{
// Function input comes from the request content.
object eventData = await req.Content.ReadAsAsync<object>();
string instanceId = await starter.StartNewAsync(functionName, eventData);
log.LogInformation($"Started orchestration with ID = '{instanceId}'.");
return starter.CreateCheckStatusResponse(req, instanceId);
}
ملحوظة
المثال السابق هو Durable Functions 2.x. بالنسبة ل Durable Functions 1.x، استخدم DurableOrchestrationContext بدلا من IDurableOrchestrationContext. لمزيد من المعلومات حول الفروقات بين الإصدارات، راجع مقال Durable Functions versions.
ملحوظة
إعداد أسماء مراكز المهام في بيانات تعريف ربط العميل ضروري فقط عندما تستخدم تطبيق وظائف واحد للوصول إلى التنسيقات والكيانات في تطبيق وظائف آخر. إذا كانت وظائف العميل معرفة في نفس تطبيق الوظائف مع التنسيقات والكيانات، تجنب تحديد أسماء مراكز المهام في بيانات الربط. افتراضيا، تحصل جميع روابط العملاء على بيانات مركز المهام من إعدادات host.json .
إذا لم يتم تحديده، يستخدم اسم مركز المهام الافتراضي كما هو موضح في الجدول التالي:
| نسخة التمديد المتينة | اسم مركز المهام الافتراضي |
|---|---|
| 2.x | عند نشره في Azure، يكون اسم مركز المهام مشتقا من اسم function app. عند التشغيل خارج Azure، يكون اسم مركز المهام الافتراضي هو TestHubName. |
| 1.x | الاسم الافتراضي لمركز المهام لجميع البيئات هو DurableFunctionsHub. |
لمزيد من المعلومات حول الفروقات بين إصدارات الامتدادات، راجع مقال Durable Functions versions.
استخدم عدة تطبيقات مع مراكز مهام منفصلة
يجب أن يتصل كل تطبيق يشارك خلفية بمركز المهام الخاص به لتجنب التعارضات. إذا استخدمت عدة تطبيقات نفس مركز المهام، فإنها تتنافس على الرسائل، مما قد يؤدي إلى سلوك غير محدد — بما في ذلك توقف التنسيقات بشكل غير متوقع. يمكن أن يحتوي الخلفية الواحدة على عدة مراكز مهام؛ قم بتكوين كل تطبيق بمنصب خاص به.
ينطبق هذا الشرط على جميع خلفيات التخزين. لمزودي تخزين BYO (تخزين Azure، Netherite، MSSQL)، قم بتكوين كل تطبيق وظيفة باسم مركز مهام منفصل. ينطبق هذا الشرط أيضا على فتحات المرحلة: قم بتكوين كل خانة تجهيز باسم مركز مهام فريد.
مهم
افتراضيا، يستخدم اسم التطبيق كاسم مركز المهام، مما يضمن عدم حدوث مشاركة عرضية. إذا قمت بتكوين أسماء مراكز المهام بشكل صريح فيhost.json، تأكد من أن الأسماء فريدة. الاستثناء الوحيد هو إذا نشرت نسخا من نفس التطبيق في مناطق متعددة للتعافي من الكوارث. في هذه الحالة، استخدم نفس مركز المهام للنسخ.
يوضح الرسم البياني التالي وجود مركز مهام واحد لكل تطبيق وظيفي في حسابات تخزين Azure المشتركة والمخصصة.
إدارة مركز المهام في جدولة المهام الدائمة
يغطي هذا القسم كيفية إنشاء وإدارة مراكز المهام عند استخدام الخلفية لجدولة المهام المتطورة. أنشئ المجدول وموارد مركز المهام بشكل صريح قبل أن يستخدمهما تطبيقك.
إنشاء مجدول ومركز مهام
إنشاء جدولة ومركز مهام باستخدام بوابة Azure أو Azure CLI أو Azure Resource Manager (ARM) أو Bicep.
- مدخل Azure
- واجهة سطر الأوامر Azure (Azure CLI)
- مدير موارد Azure
- Bicep
في بوابة Azure، ابحث عن Durable Task Scheduler واختر النتيجة من النتائج.
اختر إنشاء لفتح لوحة إنشاء الجدول.
املأ الحقول في تبويب الأساسيات ، بما في ذلك مجموعة الموارد، اسم الجدول، المنطقة، ووحدة تخزين الصورة. حدد Review + create.
بعد تجاوز التحقق من الصحة، حدد إنشاء. يستغرق النشر حتى 15 دقيقة.
بعد إنشاء الجدول، اذهب إلى مورد الجدول. في صفحة النظرة العامة ، أنشئ مركز مهام جديد.
مهم
تسمح قائمة 0.0.0.0/0 تصاريح IP بالوصول من أي عنوان IP. بالنسبة لعمليات النشر الإنتاجية، اقتصر ذلك على نطاقات IP المطلوبة فقط.
الأمثلة السابقة تستخدم وحدة تخزين مخصصة. يقدم جدولة المهام المتانة أيضا وحدة تخزين استهلاكية. لمزيد من المعلومات حول إدارة موارد جدولة المهام الدائمة، راجع التطوير مع جدولة المهام الدائمة.
تكوين المصادقة المستندة إلى الهوية
يدعم جدولة المهام الدائمة فقط المصادقة المدارة للهوية. لا يدعم سلاسل الاتصال مع مفاتيح التخزين. قم بتعيين دور التحكم في الوصول القائم على الدور (RBAC) المناسب لهوية مدارة وقم بإعداد تطبيقك لاستخدام تلك الهوية.
الأدوار التالية متاحة:
| الدور | الوصف |
|---|---|
| مساهم بيانات المهام الدائمة | الوصول الكامل للبيانات. سوبرست من بين جميع الأدوار الأخرى. |
| عامل مهمة دائم | تفاعل مع المجدول لمعالجة التنسيقات والأنشطة والكيانات. |
| قارئ بيانات المهام الدائمة | الوصول للقراءة فقط إلى بيانات التنسيق والكيانات. |
ملحوظة
معظم التطبيقات تتطلب دور مساهم بيانات المهام الدائمة .
استخدم هويات مدارة معينة من قبل المستخدم عندما يكون ذلك ممكنا لأنها غير مرتبطة بدورة عمر التطبيق ويمكنك إعادة استخدامها بعد إزالة التطبيق.
- مدخل Azure
- واجهة سطر الأوامر Azure (Azure CLI)
- مدير موارد Azure
- Bicep
اذهب إلى المجدول أو مورد مركز المهام في بوابة Azure.
حدد التحكم في الوصول (IAM) من القائمة اليمنى.
حدد إضافة>Add role assignmen.
ابحث عن Durable Task Data Contributor وحدده. حدد التالي.
لتعيين الوصول إلى، حدد الهوية المدارة. حدد + تحديد أعضاء.
اختر الهوية المدارة المعينة من قبل المستخدم، اختر الهوية، ثم اختر الاختيار.
اختر المراجعة + تعيين للانتهاء.
اذهب إلى تطبيق الوظائف الخاص بك، واختر إعدادات>الهوية. اختر علامة التبويب المعينة للمستخدم ، وأضف الهوية.
بعد تعيين الهوية، أضف المتغيرات البيئية التالية إلى تطبيقك:
| المتغير | قيمة |
|---|---|
TASKHUB_NAME |
اسم مركز مهامك. |
DURABLE_TASK_SCHEDULER_CONNECTION_STRING |
Endpoint={scheduler endpoint};Authentication=ManagedIdentity;ClientID={client id} |
ملحوظة
إذا استخدمت هوية مدارة معينة من النظام، احذف مقطع ClientID من سلسلة الاتصال: Endpoint={scheduler endpoint};Authentication=ManagedIdentity.
للحصول على تفاصيل كاملة لتكوين الهوية، انظر تكوين الهوية المدارة لجدولة المهام الدائمة.
إدارة مركز المهام لمزود تخزين BYO
يغطي هذا القسم إنشاء وحذف وفحص محتويات مركز المهام. ينطبق على مزودي التخزين الذين يحققون إحضارك الخاص (BYO): تخزين Azure، Netherite، وMSSQL.
مهم
عندما تستخدم مزود تخزين BYO، تكون مسؤولا عن تأمين موارد التخزين الأساسية. يمكن استخدام الوصول الكتابي إلى تخزين مركز المهام لتغيير سلوك التطبيق، بما في ذلك تفعيل تنفيذ الكود العشوائي. استخدم الاتصالات القائمة على الهوية، وطبق RBAC ذات أقل امتياز، وتقييد الوصول إلى الشبكة. للحصول على قائمة تحقق كاملة للتقوية، راجع تأمين تخزين مركز المهام الخاص بك.
إنشاء وحذف مراكز المهام
يتم إنشاء مركز المهام الفارغ الذي يحتوي على جميع الموارد المطلوبة تلقائيا في التخزين عند بدء تطبيق الوظائف لأول مرة.
إذا كنت تستخدم مزود تخزين Azure، فلا حاجة لتكوين إضافي. وإلا، اتبع تعليمات إعداد مزودي التخزين لضمان قدرتهم على إعداد والوصول إلى موارد التخزين المطلوبة لمركز المهام.
ملحوظة
مركز المهام لا يتم حذفه تلقائيا عند إيقاف أو حذف تطبيق الوظائف. لإزالة تلك البيانات، قم بحذف مركز المهام يدويا، أو محتوياته، أو حساب التخزين المحتوي.
نصيحة
في سيناريو التطوير، قد تحتاج إلى إعادة البدء من حالة نظيفة بشكل متكرر. للقيام بذلك بسرعة، فقط غير اسم مركز المهام المكون. هذا التغيير يجبرك على إنشاء مركز مهام جديد فارغ عند إعادة تشغيل التطبيق. البيانات القديمة لا تحذف في هذه الحالة.
فحص محتويات مركز المهام
هناك عدة طرق شائعة لفحص محتويات مركز المهام:
- داخل تطبيق الوظائف، يوفر كائن العميل طرقا للاستعلام عن مخزن النسخ. لمعرفة المزيد عن أنواع الاستعلامات المدعومة، راجع مقالة إدارة الممثلات .
- وبالمثل، تقدم واجهة HTTP طلبات REST للاستعلام عن حالة التنسيقات والكيانات. راجع مرجع واجهة برمجة تطبيقات HTTP لمزيد من التفاصيل.
- يمكن لأداة Durable Functions Monitor فحص مراكز المهام وتوفر خيارات متنوعة للعرض البصري.
بالنسبة لبعض مزودي التخزين، يمكنك أيضا فحص مركز المهام مباشرة إلى التخزين الأساسي:
- إذا استخدمت مزود تخزين Azure، يتم تخزين حالات المثيلات في ><جدول المثلات وجدول
History Table ، والذي يمكنك فحصه باستخدام أدوات مثل Azure Storage Explorer. - إذا كنت تستخدم مزود تخزين MSSQL، استخدم استعلامات SQL والأدوات لفحص محتويات مركز المهام في قاعدة البيانات.
عناصر العمل
تمثل رسائل النشاط ورسائل النسخة في مركز المهام العمل الذي يحتاج التطبيق إلى معالجته. أثناء تشغيل التطبيق، يقوم باستمرار بجلب عناصر العمل من مركز المهام. كل عنصر عمل يعالج رسالة أو أكثر. هناك نوعان من عناصر العمل:
- عناصر عمل النشاط: شغل دالة نشاط لمعالجة رسالة نشاط.
- عناصر عمل المنسق: شغل وظيفة منسق أو كيان لمعالجة رسالة أو أكثر من النسخة الثانية.
يمكن للعمال معالجة عدة عناصر عمل في نفس الوقت، مع مراعاة حدود التزامن المكونة لكل عامل.
لمزيد من المعلومات حول توازنات التوازن، انظر الأداء والمقياس.
بمجرد أن يكمل العامل عنصر عمل، يقوم بإرسال التأثيرات مرة أخرى إلى مركز المهام. تختلف هذه التأثيرات حسب نوع الوظيفة التي تم تنفيذها:
- تنشئ دالة النشاط المكتمل رسالة مثيل تحتوي على النتيجة، موجهة إلى نسخة المنسق الأب.
- تقوم وظيفة المنسق المكتملة بتحديث حالة التوزيع وتاريخه، وقد تخلق رسائل جديدة.
- تقوم دالة الكيان المكتمل بتحديث حالة الكيان، وقد تنشئ أيضا رسائل مثيل جديدة.
بالنسبة للتوزيعات الأوركسترالية، يمثل كل عنصر عمل حلقة واحدة من تنفيذ ذلك التوزيع الأوركسترالي. الحلقة هي جولة واحدة من تشغيل الموزع، ومعالجة النتائج المتاحة، ثم التوقف حتى وصول النتيجة التالية. على سبيل المثال، تبدأ الحلقة عندما يبدأ التوزيع الموسيقي، أو عندما يكتمل نشاط ويعيد نتيجة، أو عندما يصل حدث خارجي. تنتهي الحلقة عندما ينتهي الموزع أو يصل إلى نقطة يجب فيها انتظار رسائل جديدة.
مثال على التنفيذ
تخيل توزيعا موسيقيا يخرج من المشجعين يبدأ نشاطين بالتوازي، وينتظر حتى يكتمل كلاهما:
نموذج العامل المعزول
[Function("Example")]
public static async Task Run([OrchestrationTrigger] TaskOrchestrationContext context)
{
Task t1 = context.CallActivityAsync("MyActivity", 1);
Task t2 = context.CallActivityAsync("MyActivity", 2);
await Task.WhenAll(t1, t2);
}
النموذج أثناء العملية
[FunctionName("Example")]
public static async Task Run([OrchestrationTrigger] IDurableOrchestrationContext context)
{
Task t1 = context.CallActivityAsync<int>("MyActivity", 1);
Task t2 = context.CallActivityAsync<int>("MyActivity", 2);
await Task.WhenAll(t1, t2);
}
using Microsoft.DurableTask;
public class Example : TaskOrchestrator<object?, object?>
{
public override async Task<object?> RunAsync(TaskOrchestrationContext context, object? input)
{
Task t1 = context.CallActivityAsync("MyActivity", 1);
Task t2 = context.CallActivityAsync("MyActivity", 2);
await Task.WhenAll(t1, t2);
return null;
}
}
بعد أن يبدأ العميل هذا التنسيق، يعالج التطبيق ذلك كسلسلة من عناصر العمل. كل عنصر عمل مكتمل يحدث حالة مركز المهام عند الالتزام. هذه هي الخطوات:
يطلب العميل بدء تنسيق جديد باستخدام معرف الinstance-id "123". بعد إكمال العميل لهذا الطلب، يحتوي مركز المهام على مكان مؤقت لحالة التنسيق ورسالة مثيرة:
التصنيف
ExecutionStartedهو واحد من العديد من أنواع الأحداث history التي تحدد الأنواع المختلفة من الرسائل والأحداث المشاركة في تاريخ التوزيع الأوركسترالي.يقوم العامل بتنفيذ عنصر عمل منسق لمعالجة الرسالة
ExecutionStarted. يستدعي وظيفة المنسق التي تبدأ بتنفيذ كود التنسيق. يقوم هذا الرمز بجدولة نشاطين ثم يتوقف عن التنفيذ عندما ينتظر النتائج.
حالة مدة العرض الآن
Runningهي ، ويسجل التاريخ هذه الحلقة الأولى: بدأ الموزع، وبدأ التنفيذ، وتم جدولة مهمتين، وأكمل المنسق الحلقة.يقوم العامل بتنفيذ عنصر عمل نشاطي لمعالجة إحدى الرسائل
TaskScheduled. يستدعي دالة النشاط مع المدخل "2". عند اكتمال دالة النشاط، يتم إنشاءTaskCompletedرسالة تحتوي على النتيجة.
يقوم العامل بتنفيذ عنصر عمل منسق لمعالجة الرسالة
TaskCompleted. إذا كان التوزيع لا يزال مخفيا في الذاكرة، يمكنه ببساطة استئناف التنفيذ. وإلا، يعيد العامل أولا تشغيل التاريخ لاستعادة الحالة الحالية للتوزيع الأوركسترالي. ثم تواصل التوزيع الموسيقي، مقدمة نتيجة النشاط. بعد تلقي هذه النتيجة، لا يزال التوزيع ينتظر نتيجة النشاط الآخر، فيتوقف مرة أخرى عن التنفيذ.
يسجل التاريخ الحلقة الثانية: المهمة أنجزت وتوقف الموزع مرة أخرى.
يقوم العامل بتنفيذ عنصر عمل نشاطي لمعالجة الرسالة المتبقية
TaskScheduled. يستدعي دالة النشاط مع إدخال "1".
يقوم عامل بتنفيذ عنصر عمل منسق آخر لمعالجة الرسالة
TaskCompleted. بعد تلقي هذه النتيجة الثانية، تكتمل التوزيع الأوركسترالي.
حالة مدة التشغيل الآن
Completedهي ، ويسجل التاريخ الحلقة الثالثة والأخيرة: المهمة الثانية مكتملة والتنفيذ.
ملحوظة
الجدول المعروض ليس الوحيد الممكن. على سبيل المثال، إذا اكتمل النشاط الثاني في وقت أبكر، قد تتم معالجة كلا الرسالتين TaskCompleted بواسطة عنصر عمل واحد، مما يؤدي إلى حلقتين فقط بدلا من ثلاث.
التمثيل في التخزين
يستخدم كل مزود تخزين منظمة داخلية مختلفة لتمثيل مراكز المهام في التخزين. فهم هذه المنظمة، رغم أنه ليس ضروريا، يمكن أن يساعد عند استكشاف الأخطاء أو عند محاولة تحقيق أهداف الأداء أو التوسع أو التكلفة.
تستخدم مجموعات تطوير المهام المتطورة جدولة المهام الدائمة كخلفية للخلفية، والتي تدير حالة مركز المهام داخليا.
مزود جدولة المهام الدائمة
جدولة المهام الدائمة هي مزود خلفية مدار بالكامل يخزن جميع حالات مركز المهام داخليا. على عكس مزودي التخزين الذين يقدمون بنفسك (BYO)، لا تحتاج إلى إعداد أو إدارة أي بنية تخزين أساسية. كل مورد جدولة (Microsoft.DurableTask/schedulers) يحتوي على موارد مخصصة للحوسبة والذاكرة، ويمكن أن يحتوي على مركز أو أكثر من مهام (Microsoft.DurableTask/schedulers/taskHubs).
نظرا لأن جدولة المهام الدائمة تدير التخزين داخليا، لا يمكنك فحص البيانات الأساسية مباشرة. بدلا من ذلك، استخدم لوحة تحكم جدولة المهام الدائمة لمراقبة واستعلام حالات التنسيق.
لمزيد من المعلومات حول خيارات مزودي تخزين BYO وكيفية مقارنتها، راجع Durable Functions services storages.
Azure storage provider
يمثل مزود تخزين Azure مركز المهام في التخزين باستخدام المكونات التالية:
- هناك جداول Azure تخزن حالات النسخ.
- One Azure Queue يخزن رسائل النشاط.
- واحدة أو أكثر من قوائم Azure Queues تخزن رسائل النسخ. تمثل كل من قوائم انتظار التحكم هذه قسمًا تم تعيينه لمجموعة فرعية من جميع رسائل المثيل، بناءً على تجزئة معرف المثيل.
- بعض الحاويات الإضافية المستخدمة في كتل الإيجار أو الرسائل الكبيرة.
على سبيل المثال، يحتوي مركز المهام المسمى xyz بـ PartitionCount = 4 على قوائم الانتظار والجداول التالية:
تصف الأقسام التالية هذه المكونات وأدوارها بمزيد من التفصيل.
لمزيد من المعلومات حول كيفية تمثيل مراكز المهام من قبل مزود تخزين Azure، راجع وثائق تخزين Azure provider.
مزود تخزين نذريت (مسار التقاعد)
يقوم Netherite بتقسيم جميع حالات مركز المهام إلى عدد محدد من الأقسام. في التخزين، تخزن هذه الموارد البيانات:
- حاوية blob واحدة في تخزين Azure تحتوي على جميع الكتل، مجمعة حسب القسم.
- جدول Azure واحد يحتوي على مقاييس منشورة حول الأقسام.
- مساحة أسماء مراكز أحداث Azure لتوصيل الرسائل بين الأقسام.
على سبيل المثال، مركز المهام المسمى mytaskhub ب يمثل PartitionCount = 32 في التخزين كما يلي:
ملحوظة
يتم تخزين جميع حالات مركز المهام داخل x-storage حاوية البلوب. يحتوي الجدول DurableTaskPartitions ومساحة أسماء مراكز الأحداث على بيانات زائدة: إذا فقدت محتوياتها، يمكن استعادتها تلقائيا. لذلك، لا تحتاج إلى تكوين مساحة أسماء مراكز أحداث Azure للاحتفاظ بالرسائل بعد وقت انتهاء الصلاحية الافتراضي.
يستخدم نذرايت آلية لمصادر الأحداث، تعتمد على سجل ونقاط تفتيش، لتمثيل الحالة الحالية للقسم. كل من الكتل وكتلات الصفحات تخزن البيانات. لا يمكنك قراءة هذا التنسيق مباشرة من التخزين، لذا يجب أن يكون تطبيق الوظائف يعمل عند الاستعلام من مخزن النسخ.
لمزيد من المعلومات حول مراكز المهام لمزود تخزين Netherite، راجع معلومات مركز المهام الخاص بمزود التخزين Netherite.
موفر تخزين MSSQL
يتم تخزين جميع بيانات مركز المهام في قاعدة بيانات علائقية واحدة، باستخدام هذه الجداول:
- تخزن جداول
dt.Instancesوdt.Historyحالات النسخ. -
dt.NewEventsالجدول يخزن رسائل النسخ. - الجدول
dt.NewTasksيخزن رسائل النشاط.
لتمكين عدة مراكز مهام من التعايش بشكل مستقل في نفس قاعدة البيانات، يتضمن TaskHub كل جدول عمودا كجزء من مفتاحه الأساسي. على عكس المزودين الآخرين، مزود MSSQL لا يحتوي على أقسام.
لمزيد من المعلومات حول مراكز المهام لمزود تخزين MSSQL، راجع معلومات مركز المهام لمزود تخزين Microsoft SQL (MSSQL).