GH GambleHub

调度程序和背景任务

(部分: 业务和管理)

1)任命

调度器和背景任务为平台提供了非用户操作:定期计算,工件发布,清算和队列回放。目标是确定性,抗故障性和可审计性。


2)任务分类

基于时间:按计划(cron/Calendar):清算,关闭RTP窗口,上载,存档。
事件驱动:总线触发器(PaymentsSettled, PriceListUpdated)。
One off/Ad-hoc:TTL的一次性乔巴。
Long-running: backof/sags,流媒体编译。
维护:按键旋转、备份、索引、缓存加热。


3)体系结构(参考)

组件:

1.Scheduler(控制平面):存储时间表,CAL/cron,服务窗口,时区,限制器。

2.Dispatcher: Plan →队列(per-priority/tenant/region),设置截止日期,等效键。

3.工作人员:任务池下的静态/自动轨道;heartbeats, leases.

4.Queue/Bus:FIFO/修饰,DLQ,延迟消息。

5.Locker/Coordination:分布式锁定(leases), lead-election (Raft/ZK/Consul)。

6.Vault/KMS:JIT秘密,TTL短。

7.Observability: traces/metrics/logs, dashbords, alerts.

8.审计/WORM:不变的执行收据,Merkle切片。

模式:outbox/CDC,idempotency,补偿(sags),backpressure,电路断路器。


4)时间表: cron和日历

Cron v3:秒/分钟/小时/天/月/天/周;支持"/5",范围,列表。
日历/例外:商业日历,"沉默窗口",假期/DST。
时间段:在任务上保留"tz";在tenant的本地时间运行。
多区域:带有漂移/重新选举的per-Region或"领先区域+追随者"时间表的副本。


5)队列,优先级,SLA

优先级类别:P0(关键),P1,P2,P3;个别的worker池。
SLA/截止日期:"must_start_by","must_finish_by";通行证-升级/转发。
配额和公平性:任务/分钟/特南特的帽子,"bursta"的令牌,noisy-neighbors的隔离。
延迟任务:"不早于"(延迟/可视性时间)。


6)竞争性和锁定

Leases:租用自动扩展(heartbeat);超时-重新发布。
Mutex/信号器:per资源(例如,"价格表x仅写一个骗子")。
摇摇欲坠:通过"tenant/region/hash(key)";用于缓存和数据局部性的粘性路由。
领导引理:一位领导者发布"系统性"乔巴(例如"关闭所有RTP窗口"),追随者发布热站。


7)可靠性: retrais、idementity、dedup

等效键:"(task_type,business_id,窗口)";重播→相同的收据。
Retrai:指数背靠背+挤压,尝试限制,错误策略(retry/cancel/compensate)。
Poison-pill:N失败后快速转移到DLQ,对所有者表示赞赏。
Dedup:窗口的TTL上的seen-cache(内存+KV)。
Exactly once效果:通过交易日志/收据确认副作用。


8)管理冗长而艰巨的任务

Chunking:按蹦床、支票/续集细分。
时间盒装:CPU/IO/网络 egress限制;中断并保持进展。
传奇/补偿:服务间步骤的"undo"语义。
Concurrency-caps: 对类型/tenant/地区的同时任务限制。


9)可观察性和指标

Traces:"trace_id",传奇步骤,外部调用。

Metrics (SLI):

Success Rate, error-rate, retry-rate.

Lag直到开始,队列(长度,p95年龄)。

Latency p50/p95, time-to-complete.

按任务计算1k,egress/ingress。

DLQ rate, poison-pill rate.

SLO(示例):
  • P0开始≤ 60秒,P1 ≤ 5分钟;Success ≥ 99.5%;DLQ ≤ 0.1%;Freshness(opershina)≤ 30与p95。

10)审计和可证明性

收据:"receipt_hash"开始/成功/错误,关键类型(付款,价格表,RTP)的DSSE签名。
WORM:存储执行日志和任务清单。
Custody-of-Chain:谁交付/批准/更改时间表;SoD检查。


11)安全性和可用性

RBAC/ABAC/ReBAC:谁创建/批准/运行;SoD:"创建付款"≠"批准"。
JIT秘诀:窃听者通过跳过任务请求具有短TTL的令牌。
隔离:per-tenant/region/网格锻炼池;sandbox表演。
PII卫生:蒙面/令牌,禁止初学者。


12) FinOps和成本

compute/storage/egress上的预算/上限。
按队列和SLO排列的Autoscale Workers。
存储类:热(7-30天)→ OLAP (6-24个月)→存档。
成本奖励计划:"廉价时钟"的启动窗口,egress限制。


13)数据模型(简化)

`schedule` `{id, tenant, region, tz, croncalendar, window, enabled, owner, policy_version}`
`job` `{id, schedule_id?, type, payload_hash, idempotency_key, priority, must_start_by, attempts, status, receipt_hash}`
`lease` `{job_id, worker_id, acquired_at, ttl}`
`run_log` `{job_id, started_at, finished_at, outcome, trace_id, metrics{}, receipts[]}`
`dlq_item` `{job_id, reason, attempts, last_error, owner_notified}`

14) API合同(管理/集成)

"POST/schedules"-创建时间表(cron/cal, tz,窗口)。
"POST/jobs"-临时交付;返回"job_id","receipt_hash"。
"GET/jobs/{id}-状态/日志/收据。
"POST/jobs/{id}/cancel"-带补偿的取消。
"GET/queues/stats"-长度,泻湖,p95。

Вебхуки: `JobStarted`, `JobSucceeded`, `JobFailed`, `JobDroppedToDLQ`, `SLOViolated`.


15)花花公子(典型场景)

Retry-storm:包括全球支持,提升成瘾时间,包括电路断路器,击球。
DLQ雪崩:停止接收,优先考虑DLQ分析,缓冲新任务。
领导者倒台:重新当选,对"双重出版物"的平均水平进行验证,进行审计。
提供商Zavis (PSP/KYC):通往储备的路线,降低投票率/webhook,将交易转移到检疫。
泄露的窃贼秘密:召回钥匙,轮换,在30天内搜索"异常"发射,咆哮正确。


16) iGaming/fintech特点

付款/付款:带收据的异步乔布斯,隔离"灰色"交易,带有重复数据消除的队列。
RTP窗口/限制:日历关闭,观察到vs理论RTP,漂移时自动暂停促销。
价格表/FX/Tax:时间表发布、工件版本、高速缓存强制失效。
附属机构:转换对账,webhook的去世,行为/签名,争议托管。


17)质量度量(示例集)

Schedule Adherence:在窗口中启动的任务比例≥ 99%。
Queue Lag p95:P0 ≤ 60 c,P1 ≤ 5分钟。

Success/Retry/DLQ Rate: ≥ 99.5% / ≤ 0.4% / ≤ 0.1%.

Idempotency Errors: ≤ 0.01%.

Cost/1k jobs和Egress/job-在预算范围内。
审计完成:100%的关键任务与收据。


18) RACI

区域RACI
规划器体系结构Platform/SRECTOData, SecurityProduct
政策/SoD/日历Compliance/IAMCCO/CISOLegal, Ops一切都是
可观察性/SLOSREHead of EngData, FinOpsSupport
经济/配额FinOpsCFO/CTOSRE, ProductBU Leads
关键花花公子IR TeamCOOPartners, LegalAudit

19)实施支票

  • 确定任务类别,优先级和SLA;定义日历和时间表。
  • 部署Scheduler/Dispatcher/Queue/Workers,并带有Lead-Election和Sharding。
  • 引入幂等性,retrai,DLQ,补偿(传奇)。
  • 为用户配置RBAC/ABAC/ReBAC, SoD和JIT秘密。
  • 启用traces/metrics/logs、dashbords和alerts;SLO и error-budget.
  • 关键类型的签名收据(DSSE)和WORM日志。
  • 按成本计算的Autoscale和Cap Alerta (计算/存储/egress)。
  • 花花公子:retry-storm, DLQ雪崩,领导者失败,提供商退化。
  • 测试:每个花花公子的GameDay,注入延迟/错误。
  • 定期浏览时间表、排队和ROI自动化。

20) FAQ

为什么cron还不够?

如果没有队列,等效性,锁定和审计,cron就会中断故障和时区。

可以将基于时间和活动的驱动程序结合起来吗?

是的:cron-接管保险;事件-用于反应性。

如何实现"整整一天"?
按键,交易效果日志,收据和偶数副作用。

如何处理"长期"乔布斯?

Chank, Checkpoints, Time-boxing,可以中断和继续.

怎么不要"吃掉"预算?
自动排队和SLO,重型乔布便宜的手表,僵硬的egress/compute帽。


摘要:规划师和背景任务是平台的生产管道。通过内置时间表和队列、等效性、锁定和可观察性、添加收据/审计、隔离特南特和FinOps控制,您可以在任何区域和负载中获得可预测的运行时间表、快速恢复和合法的操作。

Contact

联系我们

如需任何咨询或支持,请随时联系我们。我们随时准备提供帮助!

开始集成

Email — 必填。Telegram 或 WhatsApp — 可选

您的姓名 可选
Email 可选
主题 可选
消息内容 可选
Telegram 可选
@
如果填写 Telegram,我们也会在 Telegram 回复您。
WhatsApp 可选
格式:+国家代码 + 号码(例如:+86XXXXXXXXX)。

点击按钮即表示您同意数据处理。