跳到主要内容

定时任务系统

定时任务系统是井云平台的支撑服务系统,负责定时任务调度、数据过期处理、数据统计等功能。

🎯 系统概述

核心功能

  • 定时任务调度: 管理和执行定时任务
  • 点数过期处理: 自动处理过期点数
  • 分销等级检查: 自动检查和升级用户分销等级
  • 数据统计: 定期统计数据
  • 数据清理: 清理过期数据

服务端口

  • gRPC服务: 9008

🏗️ 架构设计

系统架构

┌─────────────────────────────────────────┐
│ Cron Service (9008) │
├─────────────────────────────────────────┤
│ Task Scheduler │
│ - Cron Scheduler │
│ - Task Executor │
│ - Task Monitor │
├─────────────────────────────────────────┤
│ Scheduled Tasks │
│ - Points Expiration Task │
│ - Distribution Level Check Task │
│ - Data Statistics Task │
│ - Data Cleanup Task │
├─────────────────────────────────────────┤
│ Data Layer │
│ - Point Repository │
│ - Distribution Repository │
│ - PostgreSQL │
│ - Redis │
│ - RabbitMQ │
└─────────────────────────────────────────┘

⏰ 定时任务

点数过期处理

  • 执行时间: 每天凌晨2点
  • 处理逻辑:
    • 查询所有过期的点数账本
    • 将过期点数状态设置为expired
    • 生成点数过期交易记录
    • 通知用户点数过期
  • 数据范围: 所有租户的所有用户

分销等级检查

  • 执行时间: 每天凌晨3点
  • 处理逻辑:
    • 查询当天有支付的用户
    • 查询新注册用户的邀请人
    • 检查邀请人是否符合更高等级条件
    • 自动升级符合条件的用户等级
  • 优化策略: 只处理有变更的用户,不处理全量用户

数据统计

  • 执行时间: 每天凌晨4点
  • 统计内容:
    • 用户注册统计
    • 订单统计
    • 分销统计
    • 点数统计
  • 存储位置: 统计数据表

数据清理

  • 执行时间: 每天凌晨5点
  • 清理内容:
    • 过期的临时文件
    • 过期的日志
    • 过期的缓存数据
    • 软删除的数据

📊 任务调度

Cron表达式

  • 点数过期: 0 2 * * * (每天凌晨2点)
  • 分销检查: 0 3 * * * (每天凌晨3点)
  • 数据统计: 0 4 * * * (每天凌晨4点)
  • 数据清理: 0 5 * * * (每天凌晨5点)

任务执行流程

任务监控

  • 执行状态: 记录任务执行状态
  • 执行时间: 记录任务执行时间
  • 执行结果: 记录任务执行结果
  • 错误日志: 记录任务错误日志
  • 告警机制: 任务失败告警

💎 点数过期处理

过期逻辑

点数过期处理步骤:

  1. 定时任务查询数据库中所有过期的点数账本
  2. 数据库返回过期账本列表
  3. 对每个过期账本执行以下操作:
    • 更新账本状态为 expired
    • 创建点数过期交易记录
    • 发布点数过期事件到消息队列
  4. 消息队列将过期事件传递给用户服务
  5. 用户服务消费过期事件
  6. 用户服务处理过期逻辑
  7. 用户服务通知用户点数已过期

过期处理步骤

  1. 查询过期账本: 查询所有expires_at小于当前时间的账本
  2. 更新状态: 将账本状态从active更新为expired
  3. 创建记录: 创建点数过期交易记录
  4. 发布事件: 发布点数过期事件到消息队列
  5. 通知用户: 通过用户服务通知用户

🎁 分销等级检查

检查逻辑

升级条件

  • 消费总额: 累计消费金额达到要求
  • 下线数量: 直推下线数量达到要求
  • 等级要求: 满足目标等级的所有条件

优化策略

  • 增量处理: 只处理有变更的用户
  • 批量处理: 批量更新用户等级
  • 缓存优化: 缓存等级配置

📈 数据统计

统计内容

  • 用户统计:
    • 新增用户数
    • 活跃用户数
    • 用户增长趋势
  • 订单统计:
    • 订单数量
    • 订单金额
    • 订单成功率
  • 分销统计:
    • 分销用户数
    • 佣金总额
    • 提现金额
  • 点数统计:
    • 点数发放总额
    • 点数消费总额
    • 点数过期总额

统计存储

  • 统计表: 专门的统计数据表
  • 时间维度: 按天、周、月统计
  • 维度聚合: 支持多维度聚合

🧹 数据清理

清理内容

  • 临时文件: 清理上传的临时文件
  • 过期日志: 清理过期的日志文件
  • 过期缓存: 清理过期的缓存数据
  • 软删除数据: 清理软删除的数据(超过保留期)

清理策略

  • 保留期: 不同类型数据有不同的保留期
  • 分批清理: 分批清理避免影响性能
  • 清理记录: 记录清理日志

🔌 API 接口

任务管理接口

  • ListTasks: 获取定时任务列表
  • GetTask: 获取定时任务详情
  • UpdateTask: 更新定时任务
  • ExecuteTask: 手动执行任务
  • GetTaskLogs: 获取任务执行日志

📊 监控指标

任务执行指标

  • 任务执行次数: 任务执行总次数
  • 任务成功率: 任务执行成功率
  • 任务执行时间: 任务平均执行时间
  • 任务失败次数: 任务失败次数

数据处理指标

  • 过期点数数量: 过期点数数量
  • 升级用户数量: 升级用户数量
  • 统计数据量: 统计数据量
  • 清理数据量: 清理数据量

🔒 安全特性

任务安全

  • 权限控制: 任务执行权限控制
  • 审计日志: 任务执行审计日志
  • 异常告警: 任务异常告警

数据安全

  • 数据备份: 清理前备份数据
  • 数据验证: 清理前验证数据
  • 恢复机制: 数据恢复机制

🔗 相关文档