StartTask الفصل

مهمة يتم تشغيلها عندما تنضم عقدة إلى تجمع في خدمة Azure Batch، أو عند إعادة تشغيل عقدة الحساب أو إعادة تصورها.

ستقوم الدفعة بإعادة محاولة المهام عند تشغيل عملية استرداد على عقدة. تتضمن أمثلة عمليات الاسترداد (على سبيل المثال لا الحصر) عند إعادة تشغيل عقدة غير صحية أو اختفاء عقدة حساب بسبب فشل المضيف. عمليات إعادة المحاولة بسبب عمليات الاسترداد مستقلة عن و لا يتم حسابها مقابل maxTaskRetryCount. حتى إذا كان maxTaskRetryCount هو 0، فقد تحدث إعادة محاولة داخلية بسبب عملية استرداد. لهذا السبب، يجب أن تكون جميع المهام غير فعالة. وهذا يعني أن المهام تحتاج إلى تحمل المقاطعة وإعادة التشغيل دون التسبب في أي تلف أو تكرار البيانات. أفضل ممارسة للمهام طويلة الأمد هي استخدام شكل من أشكال نقاط التحقق. في بعض الحالات، قد تتم إعادة تشغيل StartTask على الرغم من عدم إعادة تشغيل عقدة الحساب. يجب توخي عناية خاصة لتجنب StartTasks التي تنشئ عملية توقف أو تثبيت/تشغيل الخدمات من دليل عمل StartTask، لأن هذا سيمنع Batch من القدرة على إعادة تشغيل StartTask.

يجب ملء جميع المعلمات المطلوبة لإرسالها إلى Azure.

توريث
StartTask

الدالمنشئ

StartTask(*, command_line: str, container_settings=None, resource_files=None, environment_settings=None, user_identity=None, max_task_retry_count: int = None, wait_for_success: bool = None, **kwargs)

المعلمات

command_line
str
مطلوب

مطلوب لا يعمل سطر الأوامر ضمن shell، وبالتالي لا يمكنه الاستفادة من ميزات shell مثل توسيع متغير البيئة. إذا كنت ترغب في الاستفادة من هذه الميزات، يجب استدعاء shell في سطر الأوامر، على سبيل المثال باستخدام "cmd /c MyCommand" في Windows أو "/bin/sh -c MyCommand" في Linux. إذا كان سطر الأوامر يشير إلى مسارات الملفات، فيجب أن يستخدم مسارا نسبيا (بالنسبة إلى دليل عمل المهمة)، أو استخدام متغير البيئة المقدم من Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

container_settings
TaskContainerSettings
مطلوب

إعدادات الحاوية التي يتم تشغيل StartTask ضمنها. عند تحديد ذلك، يتم تعيين جميع الدلائل بشكل متكرر أسفل AZ_BATCH_NODE_ROOT_DIR (جذر دلائل Azure Batch على العقدة) في الحاوية، ويتم تعيين جميع متغيرات بيئة المهمة في الحاوية، ويتم تنفيذ سطر أوامر المهمة في الحاوية. قد لا تنعكس الملفات المنتجة في الحاوية خارج AZ_BATCH_NODE_ROOT_DIR على القرص المضيف، ما يعني أن واجهات برمجة تطبيقات ملف Batch لن تتمكن من الوصول إلى هذه الملفات.

resource_files
list[ResourceFile]
مطلوب

توجد الملفات المدرجة ضمن هذا العنصر في دليل عمل المهمة.

environment_settings
list[EnvironmentSetting]
مطلوب
user_identity
UserIdentity
مطلوب

هوية المستخدم التي يتم تشغيل StartTask بموجبها. إذا تم حذفها، يتم تشغيل المهمة كمستخدم غير إداري فريد للمهمة.

max_task_retry_count
int
مطلوب

الحد الأقصى لعدد المرات التي قد تتم فيها إعادة محاولة المهمة. تعيد خدمة Batch محاولة مهمة إذا كانت التعليمة البرمجية للخروج الخاصة بها غير صفرية. لاحظ أن هذه القيمة تتحكم تحكماً خاصاً في عدد مرات إعادة المحاولة. ستجرب خدمة Batch المهمة مرة واحدة، وقد تعيد المحاولة حتى هذا الحد. على سبيل المثال، إذا كان الحد الأقصى لعدد مرات إعادة المحاولة هو 3، فإن Batch تحاول المهمة حتى 4 مرات (محاولة أولية واحدة و3 محاولات إعادة محاولة). إذا كان الحد الأقصى لعدد مرات إعادة المحاولة هو 0، فلن تعيد خدمة Batch محاولة المهمة. إذا كان الحد الأقصى لعدد مرات إعادة المحاولة هو -1، فإن خدمة Batch تعيد محاولة المهمة دون حد، ومع ذلك لا يوصى بذلك لمهمة بدء أو أي مهمة. تبلغ القيمة الافتراضية 0 (بلا إعادات محاولة).

wait_for_success
bool
مطلوب

ما إذا كان يجب أن تنتظر خدمة Batch حتى تكتمل StartTask بنجاح (أي للخروج باستخدام رمز الخروج 0) قبل جدولة أي مهام على عقدة الحساب. إذا كان صحيحا وفشل StartTask على عقدة، تعيد خدمة Batch محاولة StartTask حتى الحد الأقصى لعدد إعادة المحاولة (maxTaskRetryCount). إذا لم تكتمل المهمة بنجاح بعد جميع عمليات إعادة المحاولة، فإن خدمة Batch تحدد العقدة غير قابلة للاستخدام، ولن تقوم بجدولة المهام إليها. يمكن الكشف عن هذا الشرط عبر حالة عقدة الحساب وتفاصيل معلومات الفشل. إذا كانت خاطئة، فلن تنتظر خدمة Batch حتى تكتمل StartTask. في هذه الحالة، يمكن أن تبدأ المهام الأخرى في التنفيذ على عقدة الحساب أثناء استمرار تشغيل StartTask؛ وحتى إذا فشل StartTask، فستستمر جدولة المهام الجديدة على عقدة الحساب. الافتراضي هو صواب.

الأساليب

as_dict

إرجاع إملاء يمكن أن يكون JSONify باستخدام json.dump.

قد يستخدم الاستخدام المتقدم رد اتصال كمعلمة اختياريا:

المفتاح هو اسم السمة المستخدم في Python. Attr_desc هو إملاء لبيانات التعريف. يحتوي حاليا على "type" بنوع msrest و"key" مع المفتاح المشفرة RestAPI. القيمة هي القيمة الحالية في هذا الكائن.

سيتم استخدام السلسلة التي تم إرجاعها لتسلسل المفتاح. إذا كان نوع الإرجاع عبارة عن قائمة، يعتبر ذلك إملاءا للنتيجة الهرمية.

راجع الأمثلة الثلاثة في هذا الملف:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

إذا كنت تريد تسلسل XML، يمكنك تمرير kwargs is_xml=True.

deserialize

تحليل سلسلة باستخدام بناء جملة RestAPI وإرجاع نموذج.

enable_additional_properties_sending
from_dict

تحليل إملاء باستخدام مستخرج مفتاح معين يرجع نموذجا.

بشكل افتراضي، ضع في اعتبارك مستخرجات المفاتيح (rest_key_case_insensitive_extractor attribute_key_case_insensitive_extractor last_rest_key_case_insensitive_extractor)

is_xml_model
serialize

إرجاع JSON الذي سيتم إرساله إلى azure من هذا النموذج.

هذا اسم مستعار as_dict (full_restapi_key_transformer، keep_readonly=خطأ).

إذا كنت تريد تسلسل XML، يمكنك تمرير kwargs is_xml=True.

validate

تحقق من صحة هذا النموذج بشكل متكرر وأعد قائمة ValidationError.

as_dict

إرجاع إملاء يمكن أن يكون JSONify باستخدام json.dump.

قد يستخدم الاستخدام المتقدم رد اتصال كمعلمة اختياريا:

المفتاح هو اسم السمة المستخدم في Python. Attr_desc هو إملاء لبيانات التعريف. يحتوي حاليا على "type" بنوع msrest و"key" مع المفتاح المشفرة RestAPI. القيمة هي القيمة الحالية في هذا الكائن.

سيتم استخدام السلسلة التي تم إرجاعها لتسلسل المفتاح. إذا كان نوع الإرجاع عبارة عن قائمة، يعتبر ذلك إملاءا للنتيجة الهرمية.

راجع الأمثلة الثلاثة في هذا الملف:

  • attribute_transformer

  • full_restapi_key_transformer

  • last_restapi_key_transformer

إذا كنت تريد تسلسل XML، يمكنك تمرير kwargs is_xml=True.

as_dict(keep_readonly=True, key_transformer=<function attribute_transformer>, **kwargs)

المعلمات

key_transformer
<xref:function>

دالة محول مفاتيح.

keep_readonly
القيمة الافتراضية: True

المرتجعات

كائن متوافق مع JSON لل dict

نوع الإرجاع

deserialize

تحليل سلسلة باستخدام بناء جملة RestAPI وإرجاع نموذج.

deserialize(data, content_type=None)

المعلمات

data
str
مطلوب

سلسلة باستخدام بنية RestAPI. JSON بشكل افتراضي.

content_type
str
القيمة الافتراضية: None

JSON بشكل افتراضي، قم بتعيين application/xml إذا كان XML.

المرتجعات

مثيل لهذا النموذج

استثناءات

DeserializationError if something went wrong

enable_additional_properties_sending

enable_additional_properties_sending()

from_dict

تحليل إملاء باستخدام مستخرج مفتاح معين يرجع نموذجا.

بشكل افتراضي، ضع في اعتبارك مستخرجات المفاتيح (rest_key_case_insensitive_extractor attribute_key_case_insensitive_extractor last_rest_key_case_insensitive_extractor)

from_dict(data, key_extractors=None, content_type=None)

المعلمات

data
dict
مطلوب

إملاء باستخدام بنية RestAPI

content_type
str
القيمة الافتراضية: None

JSON بشكل افتراضي، قم بتعيين application/xml إذا كان XML.

key_extractors
القيمة الافتراضية: None

المرتجعات

مثيل لهذا النموذج

استثناءات

DeserializationError if something went wrong

is_xml_model

is_xml_model()

serialize

إرجاع JSON الذي سيتم إرساله إلى azure من هذا النموذج.

هذا اسم مستعار as_dict (full_restapi_key_transformer، keep_readonly=خطأ).

إذا كنت تريد تسلسل XML، يمكنك تمرير kwargs is_xml=True.

serialize(keep_readonly=False, **kwargs)

المعلمات

keep_readonly
bool
القيمة الافتراضية: False

إذا كنت تريد إجراء تسلسل للسمات للقراءة فقط

المرتجعات

كائن متوافق مع JSON لل dict

نوع الإرجاع

validate

تحقق من صحة هذا النموذج بشكل متكرر وأعد قائمة ValidationError.

validate()

المرتجعات

قائمة بخطأ التحقق من الصحة

نوع الإرجاع