إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
Durable Functions هو امتداد ل Azure Functions يضيف قدرات تنسيق الحالة إلى تطبيق الوظائف الخاص بك. يتكون تطبيق Durable Functions من وظائف Azure مختلفة، كل منها يلعب دورا محددا: منسق، نشاط، كيان، أو عميل. تتوافق هذه الأدوار مع أنواع trigger and binding المتخصصة التي يوفرها امتداد Durable Functions.
تتيح لك مجموعات تطوير المهام الدائمة بناء تطبيقات تتحمل الأخطاء والحالة على أي منصة حوسبة. تطبيقك يعرف المنسقين والأنشطة والكيانات بأنها فئات أو وظائف تقوم بتسجيلها مع الموظف. واجهة برمجة تطبيقات منفصلة للعميل تتيح لك بدء وإدارة مثيلات التنسيق.
يلخص الجدول التالي المكونات الأساسية للبرمجة وأدوارها:
| المكون | الدور | تم تعريفه بواسطة |
|---|---|---|
| الموزع | تنسيق منطق سير العمل | مشغل التنسيق |
| النشاط | يؤدي وحدة عمل واحدة | مشغل النشاط |
| الكيان | يدير قطعة صغيرة من الدولة | مشغل الكيان |
| Client | يبدأ ويدير التوزيع الموسيقي والكيانات | الربط الطويل على العميل |
| المكون | الدور | تم تعريفه بواسطة |
|---|---|---|
| الموزع | تنسيق منطق سير العمل | فئة أو وظيفة مسجلة لدى العامل |
| النشاط | يؤدي وحدة عمل واحدة | فئة أو وظيفة مسجلة لدى العامل |
| الكيان | يدير قطعة صغيرة من الدولة | فئة مسجلة لدى العامل |
| Client | يبدأ ويدير التوزيع الموسيقي والكيانات |
DurableTaskClient واجهة برمجة التطبيقات |
الموزعيون
يقوم المنسقون بتحديد سير العمل: ما هي الإجراءات التي يجب اتخاذها، وبأي ترتيب، وكيفية التعامل مع النتائج. تكتب منطق الأوركستراتور ككود عادي باستخدام تراكيب تدفق التحكم القياسية مثل الحلقات، والشرطيات، وكتل المحاولة/القبض.
يمكن للمنسق جدولة عدة أنواع من المهام:
- أنشطة لتنفيذ الأعمال
- التوزيع الفرعي لتأليف سير العمل الأصغر
- مؤقتات متينة للتأخيرات وانتهاء الوقت
- الأحداث الخارجية لانتظار الإشارات من خارج التوزيع الأوركسترالي
يمكن للمنسقين أيضا التفاعل مع الكيانات.
في Durable Functions، تعرف الأوركستراتور باستخدام <ربط زناد التنسيق c0>orchestration. يوفر المحفز كائن سياق تستخدمه لجدولة المهام واستلام النتائج.
في مجموعات تطوير المهام الدائمة، تعرف المنسق من خلال تنفيذ فئة أو دالة وتسجيلها مع عامل المهام الدائمة. يتلقى المنسق كائن سياق تستخدمه لجدولة المهام والحصول على النتائج.
مهم
يجب أن يكون رمز التنسيق حتميا. يستخدم وقت تشغيل المهمة المتطورة مصدر الأحداث وإعادة التشغيل لإعادة بناء حالة المنسق، لذا يمكن أن يتسبب الكود غير الحتمي في أعطال أو تثبيت. للحصول على إرشادات تفصيلية، راجع قيود كود Orchestrator.
للحصول على نظرة شاملة على سلوك المنسق، بما في ذلك إعادة التشغيل، وهوية النسخ، والتعامل مع الأخطاء، انظر التنسيقات الدائمة.
الأنشطة
الأنشطة هي الوحدة الأساسية للعمل في تنسيق موسيقي متين. عادة ما يمثل كل نشاط مهمة واحدة، مثل استدعاء واجهة برمجة تطبيقات الويب، أو الكتابة إلى قاعدة بيانات، أو حساب نتيجة. يصف المنظمون الأنشطة بأنها تؤدي عملها الحقيقي.
تختلف الأنشطة عن المنسقين بطرق رئيسية:
- لا توجد قيود على الكود. يجب أن يكون المنسقون حتميين، لكن يمكن للأنشطة تشغيل أي شيفرة، بما في ذلك العمليات غير الحتمية أو طويلة الأمد.
- على الأقل إعدام مرة واحدة. يضمن وقت التشغيل أن كل نشاط يسير مرة واحدة على الأقل خلال التوزيع الأوركسترالي. إذا حدث فشل بعد اكتمال النشاط ولكن قبل تسجيل النتيجة، قد يعاد وقت التشغيل تشغيله.
- مسؤولية واحدة. كل نشاط يتلقى مدخلا واحدا ويعيد مخرجا واحدا. لتمرير عدة قيم، استخدم نوعا أو مجموعة معقدة.
أنت تعرف دالة نشاط باستخدام ربط محفز النشاط. يوفر المحفز المدخلات التي مررها المنسق عند جدولة النشاط.
تعرف نشاطا من خلال تنفيذ فئة أو دالة وتسجيلها لدى عامل المهام الدائمة. يتلقى النشاط المدخلات التي مررها المنسق عند جدولته.
ملحوظة
نظرا لأن الأنشطة تضمن تنفيذ مرة واحدة على الأقل، اجعل منطق نشاطك غير فعال كلما أمكن. على سبيل المثال، استخدم "upserts" بدلا من الإدخالات، أو تحقق من النتائج الموجودة قبل إنشاء موارد جديدة.
يمكن أن تجري الأنشطة بشكل تسلسلي، أو بالتوازي، أو بمزيج من الاثنين.
الكيانات
الكيانات تدير قطعا صغيرة ومتينة من الدولة. لكل كيان هوية فريدة ومجموعة من العمليات المسماة التي يمكنها قراءة أو تحديث حالته الداخلية. تختلف الكيانات عن المنسقين في أنها تدير الحالة بشكل صريح من خلال العمليات بدلا من الضمنية من خلال تدفق التحكم. تختلف أيضا عن المنظمين في أنها لا تحتوي على نفس قيود الشيفرة — حيث يمكن لعمليات الكيان تشغيل أي شيفرة، بما في ذلك العمليات غير الحتمية أو طويلة الأمد.
تشمل الاستخدامات الشائعة للكيانات:
- تجميع البيانات من مصادر متعددة
- تنفيذ الأقفال الموزعة أو السيمافورات
- نمذجة كائنات ذات حالة مثل عربات التسوق أو جلسات الألعاب
تشغل الكيانات العمليات بشكل تسلسلي: يتم تشغيل عملية واحدة فقط في كل مرة لحالة كيان معينة. يمنع هذا التنفيذ التسلسلي تعارضات التزامن دون الحاجة إلى قفل صريح.
أنت تعرف دالة الكيان باستخدام ربط محفز الكيان.
ملحوظة
تدعم وظائف الكيانات في .NET وJavaScript/TypeScript وPython وJava، لكنها غير مدعومة في PowerShell.
تعرف كيانا عن طريق تنفيذ فئة وتسجيلها لدى عامل المهام الدائمة.
ملحوظة
يتوفر دعم الكيانات في مجموعات تطوير البرمجيات .NET وJavaScript/TypeScript وPython. حزمة تطوير Java لا تدعم الكيانات حاليا.
للحصول على دليل كامل لتعريف الكيانات واستدعاؤها وإدارتها، راجع الكيانات الدائمة.
العميل
العنصر العميل هو كيف تتفاعل مع التوزيعات والكيانات من خارج التوزيعة. تشمل العمليات الشائعة للعملاء:
- جدولة حالات التوزيع الموسيقي الجديدة
- الاستعلام عن حالة تشغيل أو إكمال التوزيع الأوركسترالي
- رفع مستوى الفعاليات إلى التوزيع الموسيقي المنتظر
- تعليق واستئناف حالات التوزيع الموسيقي
- إنهاء حالات التوزيع الموسيقي
- عمليات الكيان الإشارة وقراءة حالة الكيان
أي وظيفة غير منسقة يمكن أن تعمل كوظيفة عميل. ما يجعله عميلا هو استخدام ربط مخرجات العميل الدائم. على سبيل المثال، يمكنك بدء التنسيق من دالة يتم تفعيلها عبر HTTP، أو وظيفة يتم تفعيلها في قائمة الانتظار، أو وظيفة يتم تفعيلها بالمؤقت.
يوفر الربط الدائم للعميل أيضا واجهات برمجة تطبيقات للتفاعل مع الكيانات، بما في ذلك عمليات الكيان الإشارة وقراءة حالة الكيان. لمزيد من المعلومات، راجع ربط عميل الكيان.
في مجموعات تطوير المهام الدائمة، تتفاعل مع التنسيقات والكيانات عبر الفئة DurableTaskClient . تقوم بإنشاء نسخة عميل في كود التطبيق الخاص بك وتستدعي طرقه لبدء أو الاستعلام أو إدارة مثيلات التنسيق والكيانات. يمكن استخدام العميل من أي جزء من تطبيقك — نقطة نهاية HTTP، خدمة خلفية، تطبيق كونسول، أو أي كود آخر.
للحصول على معلومات مفصلة حول جميع عمليات إدارة المشاث، بما في ذلك عينات الكود لكل لغة، راجع إدارة حالات التنسيق.
الخطوات التالية
ابدأ بإنشاء أول تطبيق لوظيفة الدوام لك:
ابدأ مع مجموعات تطوير المهام المتينة: