حدد أولًا معنى «عقدة واحدة فقط تشغل مهمة cron». منع التنفيذ المتزامن ومنع تكرار الأثر التجاري متطلبان مختلفان. ينسق المجدول المشترك التنفيذ، لكن العملية نفسها يجب أن تبقى آمنة بعد التعطل وإعادة المحاولة.
خذ مهمة يومية لإنشاء الفواتير منشورة على ثلاث عقد NestJS. نريد تنفيذ العمل المجدول دون إنشاء فاتورة أخرى عند إعادة تشغيل العامل.
1. افهم لماذا تبدأ جميع العقد المهمة
تسجل كل نسخة من التطبيق استدعاء cron الخاص بها. وعند الموعد، يمكن لكل منها البدء بصورة مستقلة:
00:00 -> Node A -> invoice task
-> Node B -> invoice task
-> Node C -> invoice task
