مشاركة عبر


أخطاء مهمة ومهمة Azure Batch

يمكن أن تحدث أخطاء مختلفة عند إضافة مهام ومهام Azure Batch أو جدولتها أو تشغيلها. من السهل اكتشاف الأخطاء التي تحدث عند إضافة وظائف ومهام. عادة ما تقوم واجهة برمجة التطبيقات أو سطر الأوامر أو واجهة المستخدم بإرجاع أي حالات فشل على الفور. تتناول هذه المقالة كيفية التحقق من الأخطاء التي تحدث بعد إرسال المهام والمهام ومعالجتها.

حالات فشل الوظائف

المهمة هي مجموعة من مهمة واحدة أو أكثر، والتي تحدد سطور الأوامر للتشغيل. يمكنك تحديد المعلمات الاختيارية التالية عند إضافة وظيفة. تؤثر هذه المعلمات على كيفية فشل الوظيفة.

  • JobConstraints. يمكنك اختياريا استخدام الخاصية maxWallClockTime لتعيين الحد الأقصى للوقت الذي يمكن أن تكون فيه الوظيفة نشطة أو قيد التشغيل. إذا تجاوزت maxWallClockTimeالمهمة ، تنتهي المهمة بالخاصية terminateReason المعينة إلى MaxWallClockTimeExpiry في JobExecutionInformation.

  • JobPreparationTask. يمكنك اختياريا تحديد مهمة إعداد وظيفة لتشغيلها على كل عقدة حساب مجدولة لتشغيل مهمة مهمة. تقوم العقدة بتشغيل مهمة إعداد الوظيفة قبل المرة الأولى التي تقوم فيها بتشغيل مهمة للوظيفة. إذا فشلت مهمة إعداد الوظيفة، فلن يتم تشغيل المهمة ولا تكتمل المهمة.

  • JobReleaseTask. يمكنك اختياريا تحديد مهمة إصدار وظيفة للوظائف التي لها مهمة إعداد وظيفة. عند إنهاء مهمة، يتم تشغيل مهمة إصدار الوظيفة على كل عقدة تجمع قامت بتشغيل مهمة إعداد وظيفة. إذا فشلت مهمة إصدار وظيفة، فلا تزال المهمة تنتقل إلى حالة completed .

في مدخل Microsoft Azure، يمكنك تعيين هذه المعلمات في مدير الوظيفة، ومهام الإعداد والإصدار، وأقسام متقدمة من شاشة Batch Add job .

خصائص المهمة

تحقق من خصائص المهمة التالية في JobExecutionInformation بحثا عن الأخطاء:

  • terminateReason تشير الخاصية MaxWallClockTimeExpiry إلى ما إذا كانت المهمة قد تجاوزت maxWallClockTime المحدد في قيود الوظيفة وبالتالي تم إنهاء المهمة. يمكن أيضا تعيين هذه الخاصية إلى taskFailed إذا تم تعيين سمة المهمة onTaskFailure إلى performExitOptionsJobAction، وفشلت المهمة بشرط إنهاء يحدد من jobAction terminatejob.

  • يتم تعيين الخاصية JobSchedulingError إذا كان هناك خطأ في الجدولة.

مهام إعداد الوظائف

يتم تشغيل مثيل لمهمة إعداد الوظيفة على كل عقدة حساب في المرة الأولى التي تقوم فيها العقدة بتشغيل مهمة للوظيفة. يمكنك التفكير في مهمة إعداد الوظيفة كقالب مهمة، مع تشغيل مثيلات متعددة، حتى عدد العقد في تجمع. تحقق من مثيلات مهمة إعداد الوظيفة لتحديد ما إذا كانت هناك أخطاء.

يمكنك استخدام Job - List Preparation and Release Task Status API لسرد حالة التنفيذ لجميع مثيلات إعداد الوظيفة وإصدار المهام لمهمة محددة. كما هو الحال مع المهام الأخرى، يتوفر JobPreparationTaskExecutionInformation مع خصائص مثل failureInfoو exitCodeو result.

عند تشغيل مهمة إعداد مهمة، تنتقل المهمة التي أدت إلى مهمة إعداد الوظيفة إلى حالة مهمة .preparing إذا فشلت مهمة إعداد الوظيفة، تعود المهمة المشغلة active إلى الحالة ولا تعمل.

إذا فشلت مهمة إعداد الوظيفة، فلن يتم تشغيل مهمة الوظيفة المشغلة. لم تكتمل المهمة وهي عالقة. إذا لم تكن هناك مهام أخرى ذات مهام يمكن جدولتها، فقد لا يتم استخدام التجمع.

مهام إصدار الوظيفة

يتم تشغيل مثيل لمهمة إصدار وظيفة عند إنهاء المهمة على كل عقدة شغلت مهمة إعداد وظيفة. تحقق من مثيلات مهمة إصدار الوظيفة لتحديد ما إذا كانت هناك أخطاء.

يمكنك استخدام Job - List Preparation and Release Task Status API لسرد حالة التنفيذ لجميع مثيلات إعداد الوظيفة وإصدار المهام لمهمة محددة. كما هو الحال مع المهام الأخرى، يتوفر JobReleaseTaskExecutionInformation مع خصائص مثل failureInfoو exitCodeو result.

إذا فشلت مهمة واحدة أو أكثر من مهام إصدار الوظيفة، فلا تزال يتم إنهاء المهمة وتنتقل إلى حالة completed .

حالات فشل المهمة

يمكن أن تفشل مهام الوظيفة للأسباب التالية:

  • يفشل سطر أوامر المهمة ويرجع برمز إنهاء غير صفري.
  • لا يتم تنزيل مهمة واحدة أو أكثر resourceFiles محددة لمهمة.
  • لا يتم تحميل مهمة واحدة أو أكثر outputFiles محددة لمهمة.
  • يتجاوز الوقت المنقضي للمهمة الخاصية maxWallClockTime المحددة في TaskConstraints.

في جميع الحالات، تحقق من الخصائص التالية بحثا عن الأخطاء والمعلومات حول الأخطاء:

  • تحتوي الخاصية TaskExecutionInformation على خصائص متعددة توفر معلومات حول خطأ. تشير taskExecutionResult إلى ما إذا كانت المهمة قد فشلت لأي سبب من الأسباب، failureInfo exitCode وتوفر المزيد من المعلومات حول الفشل.

  • تنتقل المهمة دائما إلى completed TaskState، سواء نجحت أو فشلت.

ضع في اعتبارك تأثير حالات فشل المهام على الوظيفة وعلى أي تبعيات للمهمة. يمكنك تحديد ExitConditions لتكوين إجراءات التبعيات والمهمة.

  • تتحكم DependencyAction في حظر المهام التي تعتمد على المهمة الفاشلة أو تشغيلها.
  • يتحكم JobAction في ما إذا كانت المهمة الفاشلة تتسبب في تعطيل المهمة أو إنهائها أو عدم تغييرها.

أسطر أوامر المهمة

لا تعمل أسطر أوامر المهمة ضمن shell على عقد الحوسبة، لذلك لا يمكنها استخدام ميزات shell في الأصل مثل توسيع متغير البيئة. للاستفادة من هذه الميزات، يجب استدعاء shell في سطر الأوامر. لمزيد من المعلومات، راجع توسيع سطر الأوامر لمتغيرات البيئة.

يكتب إخراج سطر أوامر المهمة إلى ملفات stderr.txt stdout.txt. قد يكتب التطبيق الخاص بك أيضا إلى ملفات السجل الخاصة بالتطبيق. تأكد من تنفيذ التحقق الشامل من الأخطاء للتطبيق الخاص بك للكشف عن المشكلات وتشخيصها على الفور.

سجلات المهام

إذا كانت عقدة التجمع التي شغلت مهمة لا تزال موجودة، يمكنك الحصول على ملفات سجل المهام وعرضها. تسمح العديد من واجهات برمجة التطبيقات بإدراج ملفات المهام والحصول عليها، مثل ملف - الحصول على من المهمة. يمكنك أيضا سرد ملفات السجل وعرضها لمهمة أو عقدة باستخدام مدخل Microsoft Azure.

  1. في أعلى صفحة Overview لعقدة، حدد Upload batch logs.

    لقطة شاشة لصفحة نظرة عامة على العقدة مع تمييز تحميل سجلات الدفعات.

  2. في صفحة Upload Batch logs ، حدد Pick storage container، وحدد حاوية Azure Storage لتحميلها، ثم حدد Start upload.

    لقطة شاشة لصفحة تحميل سجلات الدفعات.

  3. يمكنك عرض السجلات أو فتحها أو تنزيلها من صفحة حاوية التخزين.

    لقطة شاشة لسجلات المهام في حاوية تخزين.

إخراج الملفات

نظرا لأن تجمعات الدفعات وعقد التجمع غالبا ما تكون سريعة الزوال، مع إضافة العقد وحذفها باستمرار، فمن الأفضل حفظ ملفات السجل عند تشغيل المهمة. ملفات إخراج المهام هي طريقة ملائمة لحفظ ملفات السجل إلى Azure Storage. لمزيد من المعلومات، راجع الاحتفاظ ببيانات المهمة في Azure Storage باستخدام Batch service API.

في كل تحميل ملف، يكتب Batch ملفي سجل إلى عقدة الحساب، fileuploadout.txt fileuploaderr.txt. يمكنك فحص ملفات السجلات هذه لمعرفة المزيد حول فشل معين. إذا لم تتم محاولة تحميل الملف، على سبيل المثال بسبب تعذر تشغيل المهمة نفسها، فإن ملفات السجل هذه غير موجودة.

الخطوات التالية