الجدولة والمهام الأساسية
(القسم: العمليات والإدارة)
1) الغرض
يضمن الجدولة والمهام الأساسية تشغيل المنصة من غير المستخدم: الحسابات الدورية، ومنشورات القطع الأثرية، وعمليات المقاصة وإعادة الانتظار. الأهداف هي الحتمية والتسامح مع الخطأ وقابلية المراجعة.
2) تصنيف المهام
قائمة على الوقت: مجدولة (cron/التقويم): المقاصة، إغلاق نوافذ RTP، التحميلات، الأرشفة.
مدفوعة بالحدث: مشغلات من الحافلة (PaymentsSettled، PriceListUpdated).
لمرة واحدة/مخصصة: لقاحات لمرة واحدة مع TTL.
طويل الأمد: Backoff/sagas، بث الاتفاقات.
الصيانة: عمليات الدوران الرئيسية، وإعادة التعبئة، والفهارس، والإحماء المخبأ.
3) الهندسة المعمارية (مرجع)
المكونات:1. الجدولة (التحكم في الطائرة): جداول المخازن، CAL/cron، نوافذ الصيانة، المناطق الزمنية، المحددات.
2. المرسل: خطط → قائمة الانتظار (لكل أولوية/مستأجر/منطقة)، ويضع المواعيد النهائية، والمفاتيح الحمقاء.
3. العمال: ثابتة/ذاتية المستوى لمجموعات المهام ؛ نبضات القلب، عقود الإيجار.
4. قائمة الانتظار/الحافلة: FIFO/الأولوية، DLQ، الرسائل المؤجلة.
5. الخزانة/التنسيق: الأقفال الموزعة (عقود الإيجار)، انتخاب الزعيم (Raft/ZK/القنصل).
6. Vault/KMS: أسرار JIT، TTL قصيرة.
7. إمكانية الرصد: آثار/مقاييس/سجلات، لوحات معلومات، تنبيهات.
8. مراجعة الحسابات/WORM: إيصالات ثابتة للتنفيذ، شرائح ميركل.
الأنماط: outbox/CDC، الخصوصية، التعويض (الملاحم)، الضغط الخلفي، قواطع الدوائر.
4) الجداول: cron والتقويمات
Cron v3: الثانية/الدقيقة/الساعة/اليوم/الشهر/اليوم/الأسبوع ؛ دعم «/5 «، النطاقات، القوائم.
التقويمات/الاستثناءات: تقويم الأعمال، نوافذ الصمت، العطلات/التوقيت الصيفي.
المناطق الزمنية: إبقاء 'tz' في المهمة ؛ التوقيت المحلي لبدء المستأجر.
متعدد المناطق: نسخ من الجداول الزمنية لكل منطقة أو «المنطقة الرئيسية + المتابعون» مع الاستنزاف/إعادة الانتخاب.
5) قوائم الانتظار والأولويات واتفاقات جنوب السودان
الفئات ذات الأولوية: P0 (حرج)، P1، P2، P3 ؛ تجمعات العمال الفردية.
SLA/المواعيد النهائية: 'يجب _ بدء _ بواسطة'، 'يجب _ الانتهاء _ بواسطة' ؛ تخطي - التصعيد/إعادة الدرج.
الحصص والإنصاف: الحدود القصوى للمهام/الحد الأدنى/المستأجر، رموز «الانفجارات»، عزلة الجيران الصاخبة.
مهلة التأخير/الرؤية.
6) القدرة التنافسية والعقبات
عقود الإيجار: استئجار العمل مع الإرشاد التلقائي (نبضات القلب) ؛ عن طريق المهلة - الإلغاء.
Mutex/semaphores: لكل مورد (على سبيل المثال، «قائمة الأسعار x تكتب عاملًا واحدًا فقط»).
الشحن: حسب «المستأجر/المنطقة/الهاش (المفتاح)» ؛ التوجيه اللاصق لذاكرة التخزين المؤقت ومحطة البيانات.
انتخاب الزعيم: ينشر زعيم واحد وظائف «النظام» (على سبيل المثال، «إغلاق جميع نوافذ RTP»)، والأتباع - الاستعداد الساخن.
7) الموثوقية: Retrai، الغباء، الوفاة
المفتاح الفطري: '(task_type، business_id، النافذة)' ؛ يكرر → نفس الإيصال.
Retrai: التراجع الأسي + jitter، حد المحاولات، استراتيجية الخطأ (إعادة/إلغاء/تعويض).
حبوب منع الحمل السامة: نقل سريع إلى DLQ بعد فشل N، تنبيه إلى المالك.
Dedup: seen-cache (in-memory + KV) على نوافذ TTL.
الآثار مرة واحدة بالضبط: تأكيد الآثار الجانبية عبر سجل المعاملات/الإيصالات.
8) إدارة المهام الطويلة والثقيلة
القطع: التقسيم إلى دفعات ونقاط تفتيش/استمرار.
الملاكمة الزمنية: الحد من خروج وحدة المعالجة المركزية/IO/الشبكة ؛ مقاطعة مع إنقاذ التقدم.
الملاحم/التعويضات: دلالات «التراجع» للخطوات المشتركة بين الخدمات.
الحدود القصوى للعملات المتزامنة: حدود المهام المتزامنة لكل نوع/مستأجر/منطقة.
9) إمكانية الرصد والمقاييس
آثار: «تتبع _ معرف»، خطوات ملحمة، مكالمات خارجية.
المقاييس (SLI):- تأخر في البداية، قائمة الانتظار (الطول، العمر p95).
- معدل النجاح، معدل الخطأ، معدل إعادة التجربة.
- وقت الانتهاء p50/p95، وقت الانتهاء.
- التكلفة لكل 1 ألف مهمة، الخروج/الدخول.
- معدل DLQ، معدل حبوب منع الحمل السامة.
- يبدأ P0 ≤ 60 ثانية، P1 ≤ 5 دقائق ؛ النجاح ≥ 99. 5%; DLQ ≤ 0. 1%; النضارة ≤ 30 s p95.
10) مراجعة الحسابات وقابلية الإثبات
الإيصالات: «إيصال _ هاش» للبدء/النجاح/الخطأ، توقيعات DSSE للأنواع الحرجة (المدفوعات، قوائم الأسعار، RTP).
WORM: تخزين سجلات التنفيذ وبيانات المهام.
سلسلة المسؤوليات: من قام بتسليم/إقرار/تغيير الجدول الزمني ؛ فحص SoD.
11) الأمن والوصول
RBAC/ABAC/ReBAC: من ينشئ/يوافق/يدير ؛ SoD: «إنشاء الدفع» ≠ «الموافقة».
أسرار JIT: يطلب العامل رموزًا تحتوي على TTL قصيرة حول نطاق المشكلة.
العزلة: مجمعات عمال لكل مستأجر/منطقة/شبكة ؛ تنفيذ صندوق الرمل.
نظافة PII: الإخفاء/الترميز، وحظر قطع الأشجار الأولية.
12) FinOps والتكلفة
الميزانيات/تنبيهات الحد الأقصى للحساب/التخزين/الخروج.
عمال المقياس الذاتي حسب قوائم الانتظار و SLO.
دروس التخزين: ساخنة (7-30 يومًا) → OLAP (6-24 شهرًا) → الأرشيف.
التخطيط الواعي بالتكلفة: نافذة الإطلاق في «ساعات رخيصة»، حدود الخروج.
13) نموذج البيانات (مبسط)
14) عقود API (الإدارة/التكامل)
«POST/الجداول الزمنية» - ضع جدولًا زمنيًا (cron/cal، tz، windows).
"POST/jobs' - وضع مخصص ؛ إعادة 'وظيفة _ معرف'، 'استلام _ هاش'.
'GET/jobs/{ id}' - الحالة/السجل/الإيصالات.
«POST/jobs/{ id }/إلغاء» - ألغي بالتعويض.
«احصل على/قوائم الانتظار/الإحصائيات» - الأطوال، التأخير، ص 95.
Вебхуки: "JobStarted"، "JobSuccessed"، "JobFaill'،" JobDroptToDLQ "،" SLOViolated ".
15) كتب اللعب (سيناريوهات نموذجية)
Retry-storm: تمكين التراجع العالمي، ورفع فترات التبعية، وتمكين قاطع الدائرة، وتقسيم الدفعات.
انهيار جليدي DLQ: أوقفوا الاستقبال، أعطوا الأولوية لتحليل DLQ، أوقفوا المهام الجديدة.
سقط القائد: إعادة الانتخاب، التحقق من «المنشورات المزدوجة» من خلال الحمق، التدقيق.
المزود المعلق (PSP/KYC): الطريق إلى المحمية، وتقليل وتيرة الاقتراع/الخطابات الشبكية، ونقل المعاملات إلى الحجر الصحي.
أسرار العمال المسربة: الإلغاء الرئيسي، التناوب، البحث عن إطلاق «غير طبيعي» في 30 يومًا، مراجعة الحقوق.
16) خصوصية iGaming/fintech
المدفوعات/المدفوعات: الوظائف غير المتزامنة مع الإيصالات، والحجر الصحي للمعاملات «الرمادية»، وإعادة قوائم الانتظار مع التفريغ.
نوافذ/حدود RTP: إغلاق التقويم، الملاحظة مقابل RTP النظرية، الإيقاف التلقائي عند الانجراف.
قوائم الأسعار/FX/Tax: المنشورات المجدولة، إصدارات القطع الأثرية، عجز قوة المخبأ.
الشركات المنتسبة: التوفيق بين عمليات التحويل، وشبكات التخلص، والأفعال/التوقيعات، ومنازعات الضمان.
17) مقاييس الجودة (مجموعة عينات)
الالتزام بالجدول الزمني: بدأت حصة المهام في النافذة ≥ 99٪.
قائمة الانتظار Lag p95: P0 ≤ 60 c، P1 ≤ 5 دقائق.
النجاح/Retry/DLQ معدل: ≥ 99. 5% / ≤ 0. 4% / ≤ 0. 1%.
أخطاء الخصوصية: ≤ 0. 01%.
الوظائف Cost/1k والخروج/العمل - في حدود الميزانية.
اكتمال التدقيق: 100٪ مهام حاسمة مع الإيصالات.
18) RACI
19) قائمة التنفيذ المرجعية
- تسليط الضوء على فئات المهام والأولويات واتفاقات الأمن المستدامة ؛ حدد التقويمات والمناطق الزمنية.
- نشر الجدولة/المرسل/قائمة الانتظار/العمال مع انتخاب القائد والشحن.
- إدخال الخصوصية، إعادة التدوير، DLQ، التعويضات (الملاحم).
- ضبط أسرار RBAC/ABAC/ReBAC و SoD و JIT للعمال.
- تمكين الآثار/المقاييس/جذوع الأشجار ولوحات التحكم والإنذارات ؛ SLO и ميزانية الخطأ.
- فواتير موقعة (DSSE) وسجلات WORM للأنواع الحرجة.
- التنبيهات الذاتية وتنبيهات الغطاء (الحوسبة/التخزين/الخروج).
- كتب اللعب: إعادة عاصفة، انهيار جليدي DLQ، فشل القائد، تدهور المزود.
- الاختبارات: GameDay لكل دليل، حقن التأخير/الخطأ.
- مراجعات منتظمة للجداول الزمنية، وعقبات قائمة الانتظار، وعائدات الاستثمار الآلية.
20) الأسئلة الشائعة
لماذا كرون لا يكفي ؟
بدون قوائم انتظار، وغباء، وأقفال وتدقيق، ينهار cron في حوادث التصادم والمناطق الزمنية.
هل يمكن الجمع بين الوقت والحدث ؟
نعم: cron - تأمين للحاق بالركب ؛ الأحداث - من أجل التفاعل.
كيف تحقق «مرة واحدة بالضبط» ؟
التخلص من المفتاح، وسجل تأثيرات المعاملات، والإيصالات والآثار الجانبية الخفية.
ماذا تفعل بالوظائف «الطويلة» ؟
قطع، نقاط تفتيش، ملاكمة زمنية، القدرة على المقاطعة والاستمرار.
كيف لا «تأكل» الميزانية ؟
مقياس تلقائي في قوائم الانتظار و SLOs، ساعات رخيصة للوظائف الثقيلة، قبعات صلبة للخروج/الحساب.
الملخص: الجدولة ومهام الخلفية هي خط إنتاج المنصة. من خلال تضمين الجداول الزمنية وقوائم الانتظار، والخصوصية، والأقفال وقابلية الملاحظة، وإضافة الإيصالات/عمليات التدقيق، وعزل المستأجر والتحكم في FinOps، تحصل على مواعيد نهائية يمكن التنبؤ بها، والتعافي السريع والعمليات المتسقة قانونًا في أي منطقة وتحميل.