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

1.3 KiB
Raw Blame History

事件与调度方案:任务中心

实时事件处理

  • 订阅事件:OrderPaidInviteSuccessOrderRefunded/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/设备限流。