GH GambleHub

زمانبندی و وظایف پس زمینه

(بخش: عملیات و مدیریت)

1) هدف

وظایف زمانبندی و پس زمینه اطمینان از عملکرد غیر کاربر از پلت فرم: محاسبات دوره ای، انتشارات مصنوعات، پاکسازی و تکرار صف. اهداف عبارتند از جبرگرایی، تحمل خطا و حسابرسی.


2) طبقه بندی وظیفه

مبتنی بر زمان: برنامه ریزی شده (cron/calendar): پاکسازی، بستن پنجره های RTP، آپلود، بایگانی.
رویداد محور: محرک ها از اتوبوس (PaymentsSettled، PriceListUpdated).
One-Off/Ad-hoc: یک ضربه با TTL.
طولانی مدت: Backoff/sagas، جریان فشرده.
تعمیر و نگهداری: چرخش کلید، بسته بندی مجدد، شاخص، کش گرم کردن.


3) معماری (مرجع)

قطعات:

1. Scheduler (control-plane): برنامه های فروشگاه، CAL/cron، پنجره های تعمیر و نگهداری، زمان بندی، محدود کننده ها.

2. Dispatcher: plan → صف (در هر اولویت/مستاجر/منطقه)، قرار می دهد مهلت، کلید idemotent.

3. کارگران: استاتیک/autoscale برای استخر کار ؛ ضربان قلب، اجاره نامه.

4. صف/اتوبوس: FIFO/اولویت، DLQ، پیام های معوق.

5. قفسه/هماهنگی: قفل توزیع (اجاره)، رهبر انتخابات (قایق/ZK/کنسول).

6. Vault/KMS: اسرار JIT، TTL کوتاه.

7. قابلیت مشاهده: ردیابی/معیارها/سیاهههای مربوط، داشبورد، هشدارها.

8. حسابرسی/WORM: دریافت غیر قابل تغییر از اعدام، Merkle-برش.

الگوهای: outbox/CDC، idempotency، جبران (sagas)، فشار پشتی، قطع کننده مدار.


4) برنامه ها: cron و تقویم

Cron v3: ثانیه/دقیقه/ساعت/روز/ماه/روز هفته ؛ پشتیبانی از «/5 «، محدوده ها، لیست ها.
تقویم/استثنا: تقویم کسب و کار، پنجره سکوت، تعطیلات/DST.
منطقه زمانی: نگه داشتن «tz» در کار ؛ شروع زمان محلی مستاجر.
چند منطقه ای: کپی برنامه های هر منطقه یا «منطقه سرب + پیروان» با تخلیه/انتخاب مجدد.


5) صف ها، اولویت ها، SLA ها

کلاس های اولویت: P0 (بحرانی)، P1، P2، P3 ؛ استخرهای کارگری فردی.
SLA/deadline: should _ start _ by ', must _ finish _ by'; جست و خیز - تشدید/retray.
سهمیه و انصاف: کلاه برای وظایف/دقیقه/مستاجر، نشانه برای «انفجار»، پر سر و صدا همسایه انزوا.
اتمام وقت تأخیر/مرئی.


6) رقابت و انسداد

اجاره: اجاره کار با فرمت خودکار (ضربان قلب) ؛ توسط timeout - لغو.
Mutex/semaphores: هر منبع (به عنوان مثال، «لیست قیمت x فقط یک کارگر را می نویسد»).
شاردینگ: توسط 'مستاجر/منطقه/هش (کلید)' ؛ sticky-routing برای حافظه پنهان و محل داده.
انتخاب رهبر: یک رهبر مشاغل «سیستم» را منتشر می کند (به عنوان مثال، «بستن تمام پنجره های RTP»)، پیروان - آماده به کار داغ.


7) قابلیت اطمینان: Retrai، idempotency، deadup

کلید Idempotent: '(task_type، business_id، پنجره)' ؛ همان دریافت را تکرار می کند.
Retrai: بازگشت به عقب نمایشی + jitter، محدودیت تلاش، استراتژی خطا (تلاش مجدد/لغو/جبران).
قرص سمی: انتقال سریع به DLQ پس از شکست N، هشدار به مالک.
Dedup: دیده می شود کش (در حافظه + KV) در پنجره TTL.
دقیقا یک بار اثرات: تایید عوارض جانبی از طریق ورود معامله/رسید.


8) مدیریت وظایف طولانی و سنگین

Chunking: تقسیم به دسته ها، بازرسی/ادامه.
Time-boxing: محدودیت خروج CPU/IO/شبکه ؛ با پیشرفت ذخیره کنید.
Sagas/جبران خسارت: «خنثی کردن» معانی برای مراحل بین سرویس.
Concurrency-caps: محدودیت وظایف همزمان در هر نوع/مستاجر/منطقه.


9) قابلیت مشاهده و معیارها

ردیابی: 'trace _ id'، مراحل حماسه، تماس های خارجی.

معیارها (SLI):
  • تاخیر برای شروع، صف (طول، سن p95).
  • نرخ موفقیت، نرخ خطا، نرخ تلاش مجدد.
  • تاخیر p50/p95، زمان برای تکمیل.
  • هزینه در هر 1K وظایف، خروج/ورود.
  • نرخ DLQ، نرخ سم قرص.
SLO (مثال):
  • P0 شروع ≤ 60 ثانیه، P1 ≤ 5 دقیقه ؛ موفقیت ≥ 99 5%; DLQ ≤ 0 1%; طراوت ≤ 30 ثانیه p95.

10) حسابرسی و اثبات پذیری

رسید: 'receipt _ hash' برای شروع/موفقیت/خطا، امضای DSSE برای انواع بحرانی (پرداخت، لیست قیمت، RTP).
WORM: ذخیره سازی سیاهههای مربوط به اجرا و مانیفست کار.

زنجیره ای از بازداشت: که تحویل/تایید/تغییر برنامه ؛ بررسی های SoD


11) امنیت و دسترسی

RBAC/ABAC/ReBAC: که ایجاد/تصویب/اجرا می شود ؛ SoD: «ایجاد پرداخت» ≠ «تایید».
اسرار JIT: کارگر درخواست نشانه با TTL کوتاه در مورد دامنه مشکل.

جداسازی: استخر کارگر در هر مستاجر/منطقه/شبکه ؛ سندباکس اعدام

بهداشت PII: ماسک کردن/نشانه گذاری، ممنوعیت ورود به سیستم اولیه.


12) FinOps و هزینه

بودجه/کلاه-هشدار در محاسبه/ذخیره سازی/خروج.
کارگران مقیاس خودکار توسط صف و SLO.
کلاس های ذخیره سازی: داغ (7-30 روز) → OLAP (6-24 ماه) → آرشیو.
برنامه ریزی هزینه آگاه: راه اندازی پنجره در «ساعت ارزان»، خروج از محدودیت.


13) مدل داده (ساده شده)

'schedule' {ID، مستاجر، منطقه، TZ، CRONتقویم، پنجره، فعال، مالک، policy_version}'
'job' {شناسه، ، نوع، ، ، اولویت، تلاش، وضعیت،
'lease' {job _ id, worker_id, acquired_at, ttl} '
'run _ log' '{job _ id, started_at, finished_at, result, trace_id, metrics {}, receives []}'
'dlq _ item' {job _ id، دلیل، تلاش، last_error، owner_notified}'

14) قراردادهای API (مدیریت/ادغام)

'POST/schedules' - یک برنامه (cron/cal، tz، windows) ایجاد کنید.
'POST/jobs' - قرار دادن ad-hoc ؛ return 'job _ id', 'receipt _ hash'.
'GET/jobs/{ id}' - وضعیت/ورود/رسید.
'POST/jobs/{ id }/cancel' - لغو با جبران خسارت.
GET/صف/آمار - طول, عقب ماندگی, P95.
Вебхуки: 'JobStarted', 'JobSucceed', 'JobFailed', 'JobDropToDLQ', 'SLOViolated'.


15) کتاب های بازی (سناریوهای معمولی)

Retry-storm: فعال کردن پشتیبان گیری جهانی، افزایش زمان وابستگی، فعال کردن قطع کننده مدار، تقسیم دسته ها.
بهمن DLQ: دریافت را متوقف کنید، تجزیه DLQ را اولویت بندی کنید، وظایف جدید را بافر کنید.
رهبر سقوط کرد: انتخاب مجدد، تأیید «انتشارات دوگانه» توسط idempointency، حسابرسی.
ارائه دهنده آویزان (PSP/KYC): مسیر به ذخیره، کاهش فرکانس نظرسنجی/webhooks، انتقال معاملات به قرنطینه.
اسرار کارگر به بیرون درز: لغو کلید, چرخش, جستجو برای «غیر طبیعی» راه اندازی در 30 روزها, بررسی حقوق.


16) ویژگی های iGaming/fintech

پرداخت/پرداخت: مشاغل ناهمزمان با رسید، قرنطینه معاملات «خاکستری»، تکرار صف با deduplication.
ویندوز RTP/محدودیت: بسته شدن تقویم, مشاهده در مقابل RTP نظری, خودکار مکث تبلیغی زمانی که دست خوش پیشامد میشه.
لیست قیمت/FX/مالیات: انتشارات برنامه ریزی شده، نسخه های مصنوعی، ناتوانی نیروی ذخیره سازی.
وابسته: آشتی تبدیل, dedup webhooks, اعمال/امضا, اختلافات سپردن.


17) معیارهای کیفیت (مجموعه نمونه)

برنامه پیروی: سهم وظایف آغاز شده در پنجره ≥ 99٪.
تاخیر صف p95: p0 ≤ 60 درجه سانتیگراد، P1 ≤ 5 دقیقه.
موفقیت/تلاش مجدد/نرخ DLQ: ≥ 99. 5% / ≤ 0. 4% / ≤ 0. 1%.
خطای عدم توانایی: ≤ 0. 01%.
مشاغل Cost/1k و خروج/شغل - در بودجه.
کامل بودن حسابرسی: 100٪ وظایف مهم با رسید.


18) RACI

منطقه مورد نظرتحقیق و توسعهیک نفرسی شارپمن و تو
معماری زمانبندیپلت فرم/SRECTO هاداده ها، امنیتتولید - محصول
سیاست ها/SoD/تقویمانطباق/IAMCCO/CISOحقوقی, عملیاتهمه چیز
قابلیت مشاهده/SLOبررسی اجمالیرئیس مهندسداده ها، عملیات مالیپشتیبانی از سایت
اقتصاد/سهمیه بندیعملیات مالیCFO/CTOSRE، محصولBU منجر می شود
کتاب های انتقادیتیم آی آرمدیر عاملهمکاران، حقوقیحسابرسی

19) چک لیست پیاده سازی

  • کلاس های وظیفه، اولویت ها و SLA ها را برجسته کنید ؛ تقویم ها و منطقه های زمانی را تعریف کنید.
  • استقرار برنامه ریز/دیسپچر/صف/کارگران با انتخاب رهبر و Sharding.
  • معرفی idempotency، retrays، DLQ، جبران (sagas).
  • پیکربندی اسرار RBAC/ABAC/ReBAC، SoD و JIT برای کارگران.
  • فعال کردن آثار/متریک/سیاهههای مربوط، داشبورد و هشدار ؛ SLO и بودجه خطا
  • صورتحساب امضا شده (DSSE) و سیاهههای مربوط به WORM برای انواع بحرانی.
  • Autoscale و کلاه هشدار (محاسبه/ذخیره سازی/خروج).
  • Playbooks: سعی کنید طوفان، بهمن DLQ، شکست رهبر، تخریب ارائه دهنده.
  • تست ها: GameDay در هر playbook، تزریق تاخیر/خطا.
  • بررسی منظم برنامه ها، انسداد صف و ROI های اتوماسیون.

20) سوالات متداول

چرا کرون کافی نیست ؟

بدون صف، idemotency، قفل و حسابرسی، cron در تصادفات و مناطق زمانی شکسته می شود.

آیا می توان زمان و رویداد را با هم ترکیب کرد ؟

بله: کرون - بیمه برای گرفتن ؛ حوادث - برای واکنش پذیری.

چگونه «دقیقا یک بار» را انجام دهیم ؟

dedup کلید، اثرات معاملاتی ورود به سیستم، رسید و عوارض جانبی idemotent.

با شغلهای «طولانی» چه کنیم ؟

Chunk, checkpointها, time-boxing, توانایی قطع کردن و ادامه دادن.

چگونه «غذا» نخوریم ؟

مقیاس خودکار در صف ها و SLO ها، ساعت های ارزان قیمت برای مشاغل سنگین، کلاه های سخت خروج/محاسبه.


خلاصه: وظایف زمانبندی و پس زمینه خط تولید پلت فرم است. با تعبیه برنامه ها و صف ها، idempotence، قفل ها و مشاهده پذیری، اضافه کردن رسید/ممیزی، جداسازی مستاجر و کنترل FinOps، شما می توانید مهلت های قابل پیش بینی، بازیابی سریع و عملیات قانونی سازگار در هر منطقه و بار.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.