يناقش مستشار المطورين
الرئيسيين راندي باترسون فوائد استخدام مشروع مشروع Worker Service الجديد الذي تم تقديمه في .NET Core 3.
قدم .NET Core 3 قالب مشروع جديد يسمى خدمة العمال. تم تصميم هذا القالب لمنحك نقطة انطلاق للخدمات عبر الأنظمة الأساسية. كحالة استخدام بديل ، فإنه ينشئ بيئة لطيفة جدًا لتطبيقات وحدة التحكم العامة التي تعد مثالية للحاويات والخدمات الصغيرة.

تتضمن بعض فوائد استخدام هذا القالب المجالات التالية.

حقن التبعية
يقوم قالب Worker Service بتكوين حاوية حقن تبعية افتراضية جاهزة للاستخدام. هذه فائدة كبيرة بالمقارنة مع قالب وحدة التحكم العامة.
تتضمن إضافة خدمات تحديث أسلوب
ConfigureServices في ملف
Program.cs :
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddTransient<ICustomerService,CustomerService>(); services.AddHostedService<Worker>(); });
ترتيب
يتم تكرار إعداد موفري التكوين نفسه لـ ASP.NET Core هنا لخدمات العمال. هذا يعطينا بيئة قوية ومألوفة لتخزين معلومات التكوين:
- appsettings.json
- appsettings. {Environment} .json
- أسرار المستخدم (للتطوير فقط)
- متغيرات البيئة
- وسيطات سطر الأوامر
للحصول على معلومات إضافية حول كل من مقدمي الخدمات ، يرجى الاطلاع على مقالتي السابقة المنشورة
هنا .
تسجيل
وبالمثل ، تم تكوين موفري التسجيل لمطابقة الإعداد الافتراضي لـ ASP.Net Core ، مما يتيح لك موفري الخدمات التاليين:
- وحدة التحكم
- التصحيح
- مصدر الحدث
- سجل الأحداث (فقط عند التشغيل على ويندوز)
يمكنك تعديل موفري التسجيل عن طريق إضافة أسلوب
ConfigureLogging إلى كائن
المضيف في
Program.cs :
Host.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { services.AddHostedService<Worker>(); }) .ConfigureLogging(logging => { logging.ClearProviders(); logging.AddConsole(); });
للحصول على معلومات إضافية حول التسجيل ، يرجى الاطلاع على
الوثائق الخاصة بـ ASP.NET Core.
الطبقة بدء التشغيل العامل
أخيرًا ، يكون ملف
Worker.cs هو مكان وجود الجزء الأكبر من التعليمات البرمجية الخاصة بك. هناك 3 طرق قابلة للتخطي من
BackgroundService للفئة
الأساسية تتيح لك ربط دورة حياة التطبيق الخاص بك:
ExecuteAsync - طريقة مجردة تستخدم كنقطة الإدخال الرئيسية للتطبيق الخاص بك. إذا تم إنهاء هذه الطريقة ، فسيغلق التطبيق الخاص بك.
StartAsync - طريقة افتراضية ، عندما يتم تجاوزها ، يتم استدعاءها عند بدء الخدمة ، ويمكن استخدامها لإعداد الموارد لمرة واحدة.
StopAsync - طريقة افتراضية يتم استدعاءها عند إيقاف تشغيل التطبيق ، وهي مكان جيد لتحرير الموارد والتخلص من الكائنات.
ملخص
يعمل قالب الخدمة المنفذة الجديد في .NET Core 3 على إنشاء بيئة استضافة مناسبة لتطبيقات وحدة التحكم والخدمات المصغرة والتطبيقات ذات الحاوية وخدمات الخلفية عبر الأنظمة الأساسية. على الرغم من أنه يمكن تكوين هذه الفوائد بشكل مستقل عن القالب ، فإن قالب Worker Service يوفر لنا بيئة بدء تشغيل متسقة بين تطبيقات ASP.NET Core و Console.