التطبيقات المستقلة والعاملون الخلفيون
التطبيقات المستقلة والعاملون الخلفيون
NestJS ليس مخصصاً لخوادم HTTP فقط. يمكن لحاوية حقن الاعتماديات نفسها تشغيل واجهات CLI، وعمال الطوابير، وترحيلات البيانات، ومولدات التقارير، ومهام الصيانة المجدولة. تستخدم التطبيقات المستقلة NestFactory.createApplicationContext() بدلاً من listen().
الفكرة الأساسية
تدور هذه الميزة حول التحكم في كيفية تنظيم التطبيق وسلوكه وقت التشغيل. النقاط التالية هي ما يجب أن يعرفه المطور قبل استخدامها في مشروع حقيقي:
- تشغل createApplicationContext() رسم الوحدات دون إنشاء محول HTTP.
- تستطيع التطبيقات المستقلة حل أي مزود واستدعاء خدمات التطبيق مباشرة.
- أغلق السياق دائماً حتى تتوقف مجمعات قواعد البيانات وعملاء Redis والمؤقتات بنظافة.
- استخدم WorkerModule مخصصة عندما يجب أن يستورد العامل الخلفي مزودات أقل من API الويب.
- ينبغي لعمال الطوابير وأوامر CLI مشاركة خدمات المجال مع API، لكن امتلاك معالجة الأخطاء والتسجيل على مستوى العملية.
مثال عملي
يوضح المثال التالي الشكل العملي للفكرة داخل مشروع NestJS. ليست الغاية حفظ الكود، بل فهم مكانه في المعمارية:
قائمة تطبيق إنتاجية
- استخدم createApplicationContext() للعمال والسكربتات وعمليات الأوامر.
- أغلق سياق التطبيق داخل finally.
- اجعل وحدات العمال خفيفة لتقليل زمن الإقلاع والذاكرة.
- أعد رمز خروج غير صفري عند فشل المهام التشغيلية.
الخلاصة
يغطي هذا الدرس جزءاً متقدماً من NestJS يجب فهمه عند بناء تطبيقات مؤسسية. ركّز على الحدود الواضحة، والسلوك القابل للاختبار، واختيار الأداة المناسبة للسياق بدلاً من استخدام كل ميزة في كل مكان.