تشغيل مهام الخلفية باستخدام WebJobs في Azure App Service

قم بتوزيع WebJobs باستخدام مدخل Microsoft Azure لتحميل ملف تنفيذي أو برنامج نصي. يمكنك تشغيل تطبيقات في الخلفية في Azure App Service.

إذا كنت تستخدم Visual Studio لتطوير WebJobs ونشره بدلا من Azure App Service، فشاهد نشر WebJobs باستخدام Visual Studio.

إشعار

WebJobs لحاوية Windows ورمز Linux وحاوية Linux قيد المعاينة. يتوفر WebJobs للتعليمات البرمجية ل Windows بشكل عام وليس في المعاينة.

نظرة عامة

WebJobs هي ميزة من ميزات Azure App Service التي تمكنك من تشغيل برنامج أو برنامج نصي في نفس مثيل تطبيق الويب. تدعم جميع خطط خدمة التطبيقات WebJobs. لا توجد تكلفة إضافية لاستخدام WebJobs.

إشعار

بدءا من 1 يونيو 2024، سيكون لجميع تطبيقات App Service التي تم إنشاؤها حديثا خيار إنشاء اسم مضيف افتراضي فريد باستخدام اصطلاح <app-name>-<random-hash>.<region>.azurewebsites.netالتسمية . ستظل أسماء التطبيقات الحالية دون تغيير.

مثال: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

لمزيد من التفاصيل، راجع اسم المضيف الافتراضي الفريد لمورد App Service.

يمكنك استخدام Azure WebJobs SDK مع WebJobs لتبسيط العديد من مهام البرمجة. لمزيد من المعلومات، راجع ما WebJobs SDK.

توفر Azure Functions طريقة أخرى لتشغيل البرامج والبرامج النصية. للمقارنة بين وظائف WebJobs والوظائف، راجع الاختيار بين التدفق والتطبيقات المنطقية والوظائف وWebJobs.

أنواع WebJob

أنواع الملفات المدعومة للبرامج النصية أو البرامج

أنواع الملفات التالية مدعومة:
.cmd .bat .exe (باستخدام Windows cmd)
.ps1 (باستخدام PowerShell)
.sh (باستخدام Bash)
.php (باستخدام PHP)
.py (باستخدام Python)
.js (باستخدام Node.js)
.jar (باستخدام Java)

أوقات التشغيل الضرورية لتشغيل أنواع الملفات هذه مثبتة بالفعل على مثيل تطبيق الويب.

WebJobs مستمر مقابل مشغل

يصف الجدول التالي الاختلافات بين WebJobs المستمر والمشغل:

مستمر مشغّلة
يبدأ فوراً عند إنشاء WebJob. لمنع المهمة من الانتهاء، يقوم البرنامج أو البرنامج النصي عادةً بعمله داخل حلقة لا نهاية لها. إذا انتهت المهمة، يمكنك إعادة تشغيلها. تستخدم عادة مع WebJobs SDK. يبدأ فقط عند بدء التشغيل يدوياً أو وفقاً لجدول.
يعمل على جميع المثيلات التي يعمل عليها تطبيق الويب. يمكنك تقييد WebJob اختيارياً بمثيل واحد. يعمل على مثيل واحد يحدده Azure لموازنة التحميل.
يدعم التصحيح عن بُعد. لا يدعم التصحيح عن بُعد.
تم توزيع التعليمة البرمجية ضمن \site\wwwroot\app_data\Jobs\Continuous. تم توزيع التعليمة البرمجية ضمن \site\wwwroot\app_data\Jobs\Triggered.

إشعار

يمكن أن تنتهي مهلة تطبيق الويب بعد 20 دقيقة من عدم النشاط، ويمكن فقط للطلبات المرسلة إلى تطبيق الويب الفعلي إعادة تعيين المؤقت. لا يؤدي عرض تكوين التطبيق في مدخل Azure أو إرسال طلبات إلى موقع الأدوات المتقدمة (https://<app_name>.scm.azurewebsites.net) إلى إعادة تعيين المؤقت. إذا قمت بتعيين تطبيق الويب الذي يستضيف وظيفتك للتشغيل باستمرار، أو التشغيل وفقاً لجدول زمني، أو استخدام المشغلات المستندة إلى الأحداث، فقم بتمكين الإعداد قيد التشغيل دائماً في صفحة تكوين Azure لتطبيق الويب الخاص بك. يساعد إعداد Always on على التأكد من أن هذه الأنواع من WebJobs تعمل بشكل موثوق. هذه الميزة متاحة فقط في مستويات الأسعار الأساسية، والقياسية، والمتميزة.

إنشاء WebJob مستمر

هام

عندما يتم تكوين التحكم بالمصدر لتطبيقك، يجب توزيع Webjobs كجزء من تكامل التحكم في المصدر. بعد تكوين التحكم بالمصادر لتطبيقك، لا يمكن إضافة WebJob من مدخل Microsoft Azure.

  1. في مدخل Microsoft Azure، انتقل إلى صفحة App Service لتطبيق الويب لتطبيق App Service أو تطبيق API أو تطبيق الجوال.

  2. من الجزء الأيمن، حدد WebJobs، ثم حدد Add.

    لقطة شاشة توضح كيفية إضافة WebJob في تطبيق App Service في المدخل.

  3. املأ إعدادات Add WebJob كما هو محدد في الجدول، ثم حدد Create Webjob.

    لقطة شاشة توضح كيفية تكوين WebJob مستمر لمثيل mult لتطبيق App Service.

    الإعدادات عينة القيمة الوصف
    الاسم myContinuousWebJob اسم فريد داخل تطبيق خدمة التطبيقات. يجب أن تبدأ بحرف أو رقم ويجب ألا تحتوي على أحرف خاصة غير "-" و"_".
    تحميل ملف ConsoleApp.zip ملف .zip يحتوي على ملف قابل للتنفيذ أو البرنامج النصي وأي ملفات داعمة مطلوبة لتشغيل البرنامج أو البرنامج النصي. يتم سرد أنواع الملفات القابلة للتنفيذ أو الملفات النصية المدعومة في قسم أنواع الملفات المدعومة.
    النوع مستمر تم وصف أنواع WebJob سابقاً في هذه المقالة.
    المقياس‬ مثيل متعدد متاح فقط لوظائف WebJobs المستمرة. تحديد ما إذا كان البرنامج أو البرنامج النصي يعمل على جميع المثيلات أو مثيل واحد. لا ينطبق خيار التشغيل في مثيلات متعددة على مستويات الأسعارالمجانية أو المشتركة.
  4. يظهر WebJob الجديد في صفحة WebJobs. إذا رأيت رسالة تفيد بأنه تمت إضافة WebJob، ولكنك لا تراها، فحدد Refresh.

  5. لإيقاف WebJob مستمر أو إعادة تشغيله، انقر بزر الماوس الأيمن فوق WebJob في القائمة وحدد الزر إيقاف أو تشغيل ، ثم قم بتأكيد التحديد.

    لقطة شاشة توضح كيفية إيقاف WebJob مستمر في مدخل Microsoft Azure.

إنشاء WebJob يتم تشغيله يدوياً

  1. في مدخل Microsoft Azure، انتقل إلى صفحة App Service لتطبيق الويب لتطبيق App Service أو تطبيق API أو تطبيق الجوال.

  2. من الجزء الأيمن، حدد WebJobs، ثم حدد Add.

    لقطة شاشة توضح كيفية إضافة WebJob في تطبيق App Service في المدخل (WebJob المشغل يدويا).

  3. املأ إعدادات Add WebJob كما هو محدد في الجدول، ثم حدد Create Webjob.

    لقطة شاشة توضح كيفية تكوين WebJob تم تشغيله يدويا لتطبيق App Service.

    الإعدادات عينة القيمة الوصف
    الاسم myTriggeredWebJob اسم فريد داخل تطبيق خدمة التطبيقات. يجب أن تبدأ بحرف أو رقم ويجب ألا تحتوي على أحرف خاصة غير "-" و"_".
    تحميل ملف ConsoleApp1.zip ملف .zip يحتوي على ملف قابل للتنفيذ أو البرنامج النصي وأي ملفات داعمة مطلوبة لتشغيل البرنامج أو البرنامج النصي. يتم سرد أنواع الملفات القابلة للتنفيذ أو الملفات النصية المدعومة في قسم أنواع الملفات المدعومة.
    النوع مشغّلة تم وصف أنواع WebJob مسبقاً في هذه المقالة.
    المشغلات يدوي
  4. يظهر WebJob الجديد في صفحة WebJobs. إذا رأيت رسالة تفيد بأنه تمت إضافة WebJob، ولكنك لا تراها، فحدد Refresh.

  5. لتشغيل WebJob تم تشغيله يدويا، انقر بزر الماوس الأيمن فوق WebJob في القائمة وحدد الزر تشغيل ، ثم قم بتأكيد التحديد.

    لقطة شاشة توضح كيفية تشغيل WebJob تم تشغيله يدويا في مدخل Microsoft Azure.

قم بإنشاء WebJob مجدول

يتم أيضاً تشغيل Webjob المجدول. يمكنك جدولة المشغل ليحدث تلقائياً وفقاً للجدول الذي تحدده.

  1. في مدخل Microsoft Azure، انتقل إلى صفحة App Service لتطبيق الويب لتطبيق App Service أو تطبيق API أو تطبيق الجوال.

  2. من الجزء الأيمن، حدد WebJobs، ثم حدد Add.

    لقطة شاشة توضح كيفية إضافة WebJob في تطبيق App Service في المدخل (WebJob المجدول).

  3. املأ إعدادات Add WebJob كما هو محدد في الجدول، ثم حدد Create Webjob.

    لقطة شاشة توضح كيفية تكوين WebJob مجدول في تطبيق App Service.

    الإعدادات عينة القيمة الوصف
    الاسم myScheduledWebJob اسم فريد داخل تطبيق خدمة التطبيقات. يجب أن تبدأ بحرف أو رقم ويجب ألا تحتوي على أحرف خاصة غير "-" و"_".
    تحميل ملف ConsoleApp.zip ملف .zip يحتوي على ملف قابل للتنفيذ أو البرنامج النصي وأي ملفات داعمة مطلوبة لتشغيل البرنامج أو البرنامج النصي. يتم سرد أنواع الملفات القابلة للتنفيذ أو الملفات النصية المدعومة في قسم أنواع الملفات المدعومة.
    النوع مشغّلة تم وصف أنواع WebJob سابقاً في هذه المقالة.
    المشغلات مجدول كي تعمل الجدولة بشكل موثوق، قم بتمكين ميزة مجموعات قابلية وصول عالية التوفر AlwaysOn. تتوفر مجموعات قابلية وصول عالية التوفر AlwaysOn فقط في مستويات الأسعار الأساسية والقياسية والمتميزة.
    تعبير CRON 0 0/20 * * * * تم وصفتعبيرات CRON في القسم التالي.
  4. يظهر WebJob الجديد في صفحة WebJobs. إذا رأيت رسالة تفيد بأنه تمت إضافة WebJob، ولكنك لا تراها، فحدد Refresh.

  5. يتم تشغيل WebJob المجدول في الجدول المحدد بواسطة تعبير CRON. لتشغيله يدويا في أي وقت، انقر بزر الماوس الأيمن فوق WebJob في القائمة وحدد الزر تشغيل ، ثم قم بتأكيد التحديد.

    لقطة شاشة توضح كيفية تشغيل WebJob مجدول يدويا في مدخل Microsoft Azure.

تعبيرات NCRONTAB

يمكنك إدخال تعبير NCRONTAB في المدخل أو تضمين ملف settings.job في جذر ملف WebJob .zip، كما في المثال التالي:

{
    "schedule": "0 */15 * * * *"
}

لمعرفة المزيد، راجع جدولة WebJob المشغلة.

إشعار

المنطقة الزمنية الافتراضية المستخدمة لتشغيل تعبيرات CRON هي التوقيت العالمي (UTC). لتشغيل تعبير CRON استناداً إلى منطقة زمنية أخرى، قم بإنشاء إعداد تطبيق لتطبيق وظيفتك باسم WEBSITE_TIME_ZONE. لمعرفة المزيد، راجع المناطق الزمنية NCRONTAB.

إدارة WebJobs

يمكنك إدارة حالة تشغيل WebJobs الفردية التي تعمل في موقعك في مدخل Microsoft Azure. انتقل إلى الإعدادات>WebJobs، واختر WebJob، ويمكنك بدء تشغيل WebJob وإيقافه. يمكنك أيضاً عرض وتعديل كلمة المرور الخاصة بخطاف الويب الذي يقوم بتشغيل WebJob.

يمكنك أيضاً إضافة إعداد تطبيق يسمى WEBJOBS_STOPPED بقيمة 1 لإيقاف تشغيل كافة WebJobs على موقعك. يمكنك استخدام هذا الأسلوب لمنع WebJobs المتعارضة من التشغيل في كل من فتحات التشغيل المرحلي والإنتاج. يمكنك بالمثل استخدام قيمة 1 للإعداد WEBJOBS_DISABLE_SCHEDULE لتعطيل WebJobs المشغل في الموقع أو في فتحة التدريج. بالنسبة للفتحات، تذكر تمكين الخيار إعداد فتحة التوزيع بحيث لا يتم تبديل الإعداد نفسه.

عرض تاريخ الوظيفة

  1. بالنسبة إلى WebJob الذي تريد رؤيته، حدد Logs.

    لقطة شاشة توضح كيفية الوصول إلى سجلات WebJob.

  2. في صفحة WebJob Details، حدد وقتاً لمشاهدة التفاصيل لتشغيل واحد.

    لقطة شاشة توضح كيفية اختيار تشغيل WebJob لمشاهدة سجلاته التفصيلية.

  3. في صفحة WebJob Run Details ، يمكنك تحديد download للحصول على ملف نصي للسجلات، أو تحديد ارتباط WebJobs breadcrumb في أعلى الصفحة لمشاهدة سجلات WebJob مختلفة.

حالات WebJob

فيما يلي قائمة بحالة WebJob الشائعة:

  • تم بدء تهيئة التطبيق ويمر WebJob بعملية التهيئة الخاصة به.
  • يتم بدء تشغيل WebJob.
  • تشغيل WebJob قيد التشغيل.
  • PendingRestart يتم إنهاء WebJob المستمر في أقل من دقيقتين منذ أن بدأ لأي سبب من الأسباب، وتنتظر App Service 60 ثانية قبل إعادة تشغيل WebJob. إذا تم إنهاء WebJob المستمر بعد علامة الدقيقة، لا تنتظر App Service 60 ثانية وتعيد تشغيل WebJob على الفور.
  • تم إيقاف WebJob (عادة من مدخل Microsoft Azure) ولا يعمل حاليا ولن يتم تشغيله حتى تبدأه مرة أخرى يدويا، حتى بالنسبة إلى WebJob مستمر أو مجدول.
  • تم إجهاض هذا يمكن أن يحدث لعدة أسباب، مثل عندما يصل WebJob طويل الأمد إلى علامة المهلة.

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

يمكن استخدام Azure WebJobs SDK مع WebJobs لتبسيط العديد من مهام البرمجة. لمزيد من المعلومات، راجع ما WebJobs SDK.