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 لن تتمكن من الوصول إلى هذه الملفات.
- 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. القيمة هي القيمة الحالية في هذا الكائن. سيتم استخدام السلسلة التي تم إرجاعها لتسلسل المفتاح. إذا كان نوع الإرجاع عبارة عن قائمة، يعتبر ذلك إملاءا للنتيجة الهرمية. راجع الأمثلة الثلاثة في هذا الملف:
إذا كنت تريد تسلسل 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
المرتجعات
كائن متوافق مع JSON لل dict
نوع الإرجاع
deserialize
تحليل سلسلة باستخدام بناء جملة RestAPI وإرجاع نموذج.
deserialize(data, content_type=None)
المعلمات
المرتجعات
مثيل لهذا النموذج
استثناءات
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)
المعلمات
- key_extractors
المرتجعات
مثيل لهذا النموذج
استثناءات
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)
المعلمات
المرتجعات
كائن متوافق مع JSON لل dict
نوع الإرجاع
validate
تحقق من صحة هذا النموذج بشكل متكرر وأعد قائمة ValidationError.
validate()
المرتجعات
قائمة بخطأ التحقق من الصحة
نوع الإرجاع
Azure SDK for Python
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ