bindbox-game/docs/任务中心/EVENTS_SCHEDULER_任务中心.md
邹方成 45815bfb7d chore: 清理无用文件与优化代码结构
refactor(utils): 修复密码哈希比较逻辑错误
feat(user): 新增按状态筛选优惠券接口
docs: 添加虚拟发货与任务中心相关文档
fix(wechat): 修正Code2Session上下文传递问题
test: 补充订单折扣与积分转换测试用例
build: 更新配置文件与构建脚本
style: 清理多余的空行与注释
2025-12-18 17:35:55 +08:00

28 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 事件与调度方案:任务中心
## 实时事件处理
- 订阅事件:`OrderPaid``InviteSuccess``OrderRefunded/Cancelled`
- 流程:
1. 解析事件并查`Tasks`在有效期且启用。
2. 更新`UserTaskProgress.metrics`(订单数/邀请数/首单标记)。
3. 匹配`TaskTiers`:达标产出`tier_id`列表(去除已领取)。
4. 幂等检查:生成`idempotency_key`并查`TaskEventLogs`
5. 发奖:调用`user.GrantReward(...)``TaskRewards`派发;扣减库存(如有)。
6. 记录日志:`TaskEventLogs`写入状态与结果;`claimed_tiers`追加。
## 调度补偿
- 周期任务(每小时/每日):
- 扫描`UserTaskProgress`与事件流快照,识别漏发档位并补发。
- 生成指标快照与对账报表(订单/邀请/奖励入账)。
- 失败重试:对发奖失败记录按指数退避重试,设置最大重试次数与报警。
## 幂等与并发
- 幂等键:`user_id + task_id + tier_id + event_id`
- 并发控制:同用户同任务串行执行;库存扣减与日志写入同事务或使用分布式锁。
## 风控
- 邀请有效校验:必须注册并完成首单;设备指纹与手机号校验。
- 刷单检测:黑名单、频次阈值、风控评分;高风险事件直接拒绝并记录原因。
- 限流每日发奖上限IP/设备限流。