قائمة الانتظار وRedis
يستخدم برنامج التشغيل Redis وBullMQ حتى تنجو مهام الطباعة من أخطاء العملية وانقطاع الطابعة.قوائم الانتظار لكل طابعة
كلip_address:port فريد يحصل على PrinterStore مخصص.
على سبيل المثال:
- قائمة انتظار BullMQ واحدة.
- عامل واحد BullMQ.
- مستمع أحداث قائمة الانتظار واحد.
- ذاكرة تخزين مؤقت واحدة لحالة الطابعة.
- وحدة تحكم دورة حياة مقبس واحد.
1، لذا لا تتلقى طابعة واحدة مطلقًا مهمتين في نفس الوقت. يمكن للطابعات المختلفة أن تقوم بالمعالجة بالتوازي، لأن كل طابعة لها العامل الخاص بها.
سجل الطابعة
يتم تخزين الطابعات المعروفة في مجموعة Redis:restorePersistedStores() بقراءة المجموعة وإعادة إنشاء المخازن وإعادة محاولة المهام الفاشلة.
إعادة محاولة السلوك
خيارات قائمة الانتظار الافتراضية:- تتم إزالة المهام المكتملة.
- يتم الاحتفاظ بالوظائف الفاشلة.
- إعادة محاولة المهام الفاشلة مع التراجع الثابت.
- يقوم
maxAttemptsبإعادة المحاولة بشكل فعال إلى الأبد.
الوظائف المجدولة
POST /print يقبل runAt.
إذا كان runAt في المستقبل، يقوم السائق بإضافة المهمة مع تأخير BullMQ. إذا تم إنشاء مهمة متأخرة لجدول مستقبلي، فلن يقوم منطق الاسترداد بترقيتها مبكرًا.
نماذج runAt المقبولة:
- رقم الطابع الزمني بالميلي ثانية.
- سلسلة رقمية.
- سلسلة التاريخ التي يمكن لـ
Date.parse()تحليلها.
حالة قائمة الانتظار
يجمعGET /queue-status جميع المتاجر المعروفة:
waitingactivedelayedfailedcompletedtotalPendingisProcessing
totalPending هو waiting + delayed في جميع المتاجر.
جزءا لا يتجزأ من Redis
يبدأ الوضع المضمن من Redis إلىredis-memory-server.
في نظام التشغيل Windows، يقوم برنامج التشغيل بفحص أو تنزيل الملف الثنائي Redis المطلوب:
config.redis.version، فسيتم إلغاء بدء التشغيل.
مزامنة القرص
عندما يكونredis.diskSync صحيحًا، يبدأ Redis بإعدادات اللقطة:
SAVE.
استخدم مزامنة القرص عندما تحتاج إلى قوائم الانتظار والطابعات المعروفة للبقاء على قيد الحياة عند إعادة التشغيل.