BatchJobPreparationTask interface
مهمة إعداد الوظيفة لتشغيلها قبل أي مهام للوظيفة على أي عقدة حساب معينة. يمكنك استخدام إعداد الوظيفة لإعداد عقدة لتشغيل المهام للوظيفة. تتضمن الأنشطة التي يتم تنفيذها عادة في إعداد الوظيفة: تنزيل ملفات الموارد الشائعة المستخدمة من قبل كافة المهام في الوظيفة. يمكن لمهمة إعداد الوظيفة تنزيل ملفات الموارد الشائعة هذه إلى الموقع المشترك على العقدة. (AZ_BATCH_NODE_ROOT_DIR\shared)، أو بدء تشغيل خدمة محلية على العقدة بحيث يمكن لجميع مهام هذه الوظيفة الاتصال بها. إذا فشلت مهمة إعداد الوظيفة (أي، استنفاد عدد مرات إعادة المحاولة قبل الخروج باستخدام رمز الخروج 0)، فلن تقوم الدفعة بتشغيل مهام هذه المهمة على العقدة. تظل عقدة الحساب غير مؤهلة لتشغيل مهام هذه المهمة حتى يتم إعادة تصورها. تظل عقدة الحساب نشطة ويمكن استخدامها لوظائف أخرى. يمكن تشغيل مهمة إعداد الوظيفة عدة مرات على نفس العقدة. لذلك، يجب كتابة مهمة إعداد الوظيفة للتعامل مع إعادة التنفيذ. إذا تمت إعادة تشغيل العقدة، يتم تشغيل مهمة إعداد الوظيفة مرة أخرى على عقدة الحساب قبل جدولة أي مهمة أخرى من المهمة، إذا كانت إعادة تشغيلOnNodeRebootAfterSuccess صحيحة أو إذا لم تكتمل مهمة إعداد الوظيفة مسبقا. إذا تمت إعادة تصور العقدة، يتم تشغيل مهمة إعداد الوظيفة مرة أخرى قبل جدولة أي مهمة من المهمة. ستقوم الدفعة بإعادة محاولة المهام عند تشغيل عملية استرداد على عقدة. تتضمن أمثلة عمليات الاسترداد (على سبيل المثال لا الحصر) عند إعادة تشغيل عقدة غير صحية أو اختفاء عقدة حساب بسبب فشل المضيف. عمليات إعادة المحاولة بسبب عمليات الاسترداد مستقلة عن ولا يتم حسابها مقابل maxTaskRetryCount. حتى إذا كان maxTaskRetryCount هو 0، فقد تحدث إعادة محاولة داخلية بسبب عملية استرداد. ولهذا السبب، يجب أن تكون كافة المهام غير فعالة. وهذا يعني أن المهام تحتاج إلى التسامح مع المقاطعة وإعادة التشغيل دون التسبب في أي تلف أو بيانات مكررة. أفضل ممارسة للمهام طويلة الأمد هي استخدام شكل من أشكال نقاط التفتيش.
الخصائص
| command |
سطر الأوامر لمهمة تحضير الوظيفة. لا يعمل سطر الأوامر تحت shell، وبالتالي لا يمكن الاستفادة من ميزات shell مثل توسيع متغير البيئة. إذا كنت ترغب في الاستفادة من هذه الميزات، يجب استدعاء shell في سطر الأوامر، على سبيل المثال باستخدام "cmd /c MyCommand" في Windows أو "/bin/sh -c MyCommand" في Linux. إذا كان سطر الأوامر يشير إلى مسارات الملفات، يجب أن يستخدم مسارا نسبيا (بالنسبة لدليل عمل المهمة)، أو يستخدم متغير البيئة المقدم من دفعة (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | القيود التي تنطبق على مهمة إعداد الوظيفة. |
| container |
إعدادات الحاوية التي تعمل تحتها مهمة تحضير المهمة. عند تحديد ذلك، يتم تعيين جميع المجلدات بشكل متكرر أسفل AZ_BATCH_NODE_ROOT_DIR (جذر أدلة Azure Batch على العقدة) إلى الحاوية، ويتم تعيين جميع متغيرات بيئة المهمة إلى الحاوية، ويتم تنفيذ سطر أوامر المهمة داخل الحاوية. قد لا تنعكس الملفات المنتجة في الحاوية خارج AZ_BATCH_NODE_ROOT_DIR على قرص المضيف، مما يعني أن واجهات برمجة تطبيقات الملفات الدفعية لن تتمكن من الوصول إلى تلك الملفات. |
| environment |
قائمة بإعدادات متغيرات البيئة لمهمة إعداد الوظيفة. |
| id | سلسلة تحدد بشكل فريد مهمة إعداد الوظيفة داخل الوظيفة. يمكن أن يحتوي المعرف على أي تركيبة من الأحرف الأبجدية الرقمية بما في ذلك الشرطات والخطوط السفلية، ولا يمكن أن يحتوي على أكثر من 64 حرفا. إذا لم تحدد هذه الخاصية، فإن خدمة الدفعة تعين قيمة افتراضية هي 'إعداد الوظائف'. لا يمكن لأي مهمة أخرى في الوظيفة أن تحمل نفس معرف مهمة تحضير الوظيفة. إذا حاولت تقديم مهمة بنفس المعرف، ترفض خدمة الدفعة الطلب برمز خطأ TaskIdSameAsJobPreparationTask؛ إذا كنت تتصل مباشرة بواجهة برمجة تطبيقات REST، فإن رمز حالة HTTP هو 409 (تعارض). |
| rerun |
ما إذا كان يجب على خدمة الدفعة إعادة تشغيل مهمة تحضير المهمة بعد إعادة تشغيل عقدة الحوسبة. يتم دائما إعادة تشغيل مهمة إعداد الوظيفة إذا تم إعادة تصوير عقدة الحوسبة، أو إذا لم تكتمل مهمة تحضير المهمة (مثلا لأن إعادة التشغيل حدثت أثناء تشغيل المهمة). لذلك، يجب عليك دائما كتابة مهمة تحضير الوظيفة لتكون متناسقا ويتصرف بشكل صحيح إذا تم تشغيلها عدة مرات. القيمة الافتراضية صحيحة. |
| resource |
قائمة بالملفات التي تقوم خدمة الدفعة بتنزيلها إلى عقدة الحوسبة قبل تشغيل سطر الأوامر. الملفات المدرجة تحت هذا العنصر موجودة في مجلد العمل الخاص بالمهمة. هناك حد أقصى لحجم قائمة ملفات الموارد. عندما يتجاوز الحد الأقصى للحجم، سيفشل الطلب ويصبح رمز خطأ الاستجابة هو RequestEntityTooLarge. إذا حدث ذلك، يجب تقليل حجم مجموعة ملفات الموارد. يمكن تحقيق ذلك باستخدام ملفات .zip، أو حزم التطبيقات، أو حاويات دوكر. |
| user |
هوية المستخدم التي تعمل تحتها مهمة تحضير المهمة. إذا تم حذفها، تعمل المهمة كمستخدم غير إداري فريد للمهمة على عقد حوسبة ويندوز، أو كمستخدم غير إداري فريد لمجموعة العقد على عقد حوسبة لينكس. |
| wait |
ما إذا كان يجب على خدمة الدفعة الانتظار حتى تكتمل مهمة تحضير المهمة بنجاح قبل جدولة أي مهام أخرى للمهمة على عقدة الحوسبة. تكون مهمة تحضير المهمة قد اكتملت بنجاح إذا خرجت برمز خروج 0. إذا كان صحيحا وفشلت مهمة إعداد المهمة على عقدة، تعيد خدمة الدفعة محاولة مهمة إعداد المهمة حتى أقصى عدد من المحاولات (كما هو محدد في عنصر القيود). إذا لم تكتمل المهمة بنجاح بعد جميع الاسترجاع، فلن تقوم خدمة الدفعة بجدولة مهام المهمة إلى العقدة. تظل العقدة نشطة ومؤهلة لتشغيل مهام الوظائف الأخرى. إذا كانت خاطئة، فلن تنتظر خدمة الدفعة حتى تكتمل مهمة تحضير المهمة. في هذه الحالة، يمكن أن تبدأ مهام أخرى للوظيفة في التنفيذ على عقدة الحوسبة بينما لا تزال مهمة تحضير المهمة تعمل؛ وحتى إذا فشلت مهمة تحضير المهمة، ستستمر المهام الجديدة في الجدولة على عقدة الحوسبة. القيمة الافتراضية صحيحة. |
تفاصيل الخاصية
commandLine
سطر الأوامر لمهمة تحضير الوظيفة. لا يعمل سطر الأوامر تحت shell، وبالتالي لا يمكن الاستفادة من ميزات shell مثل توسيع متغير البيئة. إذا كنت ترغب في الاستفادة من هذه الميزات، يجب استدعاء shell في سطر الأوامر، على سبيل المثال باستخدام "cmd /c MyCommand" في Windows أو "/bin/sh -c MyCommand" في Linux. إذا كان سطر الأوامر يشير إلى مسارات الملفات، يجب أن يستخدم مسارا نسبيا (بالنسبة لدليل عمل المهمة)، أو يستخدم متغير البيئة المقدم من دفعة (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
قيمة الخاصية
string
constraints
القيود التي تنطبق على مهمة إعداد الوظيفة.
constraints?: BatchTaskConstraints
قيمة الخاصية
containerSettings
إعدادات الحاوية التي تعمل تحتها مهمة تحضير المهمة. عند تحديد ذلك، يتم تعيين جميع المجلدات بشكل متكرر أسفل AZ_BATCH_NODE_ROOT_DIR (جذر أدلة Azure Batch على العقدة) إلى الحاوية، ويتم تعيين جميع متغيرات بيئة المهمة إلى الحاوية، ويتم تنفيذ سطر أوامر المهمة داخل الحاوية. قد لا تنعكس الملفات المنتجة في الحاوية خارج AZ_BATCH_NODE_ROOT_DIR على قرص المضيف، مما يعني أن واجهات برمجة تطبيقات الملفات الدفعية لن تتمكن من الوصول إلى تلك الملفات.
containerSettings?: BatchTaskContainerSettings
قيمة الخاصية
environmentSettings
قائمة بإعدادات متغيرات البيئة لمهمة إعداد الوظيفة.
environmentSettings?: EnvironmentSetting[]
قيمة الخاصية
id
سلسلة تحدد بشكل فريد مهمة إعداد الوظيفة داخل الوظيفة. يمكن أن يحتوي المعرف على أي تركيبة من الأحرف الأبجدية الرقمية بما في ذلك الشرطات والخطوط السفلية، ولا يمكن أن يحتوي على أكثر من 64 حرفا. إذا لم تحدد هذه الخاصية، فإن خدمة الدفعة تعين قيمة افتراضية هي 'إعداد الوظائف'. لا يمكن لأي مهمة أخرى في الوظيفة أن تحمل نفس معرف مهمة تحضير الوظيفة. إذا حاولت تقديم مهمة بنفس المعرف، ترفض خدمة الدفعة الطلب برمز خطأ TaskIdSameAsJobPreparationTask؛ إذا كنت تتصل مباشرة بواجهة برمجة تطبيقات REST، فإن رمز حالة HTTP هو 409 (تعارض).
id?: string
قيمة الخاصية
string
rerunOnNodeRebootAfterSuccess
ما إذا كان يجب على خدمة الدفعة إعادة تشغيل مهمة تحضير المهمة بعد إعادة تشغيل عقدة الحوسبة. يتم دائما إعادة تشغيل مهمة إعداد الوظيفة إذا تم إعادة تصوير عقدة الحوسبة، أو إذا لم تكتمل مهمة تحضير المهمة (مثلا لأن إعادة التشغيل حدثت أثناء تشغيل المهمة). لذلك، يجب عليك دائما كتابة مهمة تحضير الوظيفة لتكون متناسقا ويتصرف بشكل صحيح إذا تم تشغيلها عدة مرات. القيمة الافتراضية صحيحة.
rerunOnNodeRebootAfterSuccess?: boolean
قيمة الخاصية
boolean
resourceFiles
قائمة بالملفات التي تقوم خدمة الدفعة بتنزيلها إلى عقدة الحوسبة قبل تشغيل سطر الأوامر. الملفات المدرجة تحت هذا العنصر موجودة في مجلد العمل الخاص بالمهمة. هناك حد أقصى لحجم قائمة ملفات الموارد. عندما يتجاوز الحد الأقصى للحجم، سيفشل الطلب ويصبح رمز خطأ الاستجابة هو RequestEntityTooLarge. إذا حدث ذلك، يجب تقليل حجم مجموعة ملفات الموارد. يمكن تحقيق ذلك باستخدام ملفات .zip، أو حزم التطبيقات، أو حاويات دوكر.
resourceFiles?: ResourceFile[]
قيمة الخاصية
userIdentity
هوية المستخدم التي تعمل تحتها مهمة تحضير المهمة. إذا تم حذفها، تعمل المهمة كمستخدم غير إداري فريد للمهمة على عقد حوسبة ويندوز، أو كمستخدم غير إداري فريد لمجموعة العقد على عقد حوسبة لينكس.
userIdentity?: UserIdentity
قيمة الخاصية
waitForSuccess
ما إذا كان يجب على خدمة الدفعة الانتظار حتى تكتمل مهمة تحضير المهمة بنجاح قبل جدولة أي مهام أخرى للمهمة على عقدة الحوسبة. تكون مهمة تحضير المهمة قد اكتملت بنجاح إذا خرجت برمز خروج 0. إذا كان صحيحا وفشلت مهمة إعداد المهمة على عقدة، تعيد خدمة الدفعة محاولة مهمة إعداد المهمة حتى أقصى عدد من المحاولات (كما هو محدد في عنصر القيود). إذا لم تكتمل المهمة بنجاح بعد جميع الاسترجاع، فلن تقوم خدمة الدفعة بجدولة مهام المهمة إلى العقدة. تظل العقدة نشطة ومؤهلة لتشغيل مهام الوظائف الأخرى. إذا كانت خاطئة، فلن تنتظر خدمة الدفعة حتى تكتمل مهمة تحضير المهمة. في هذه الحالة، يمكن أن تبدأ مهام أخرى للوظيفة في التنفيذ على عقدة الحوسبة بينما لا تزال مهمة تحضير المهمة تعمل؛ وحتى إذا فشلت مهمة تحضير المهمة، ستستمر المهام الجديدة في الجدولة على عقدة الحوسبة. القيمة الافتراضية صحيحة.
waitForSuccess?: boolean
قيمة الخاصية
boolean