Files
junhong_cmp_fiber/migrations/000051_create_tb_data_cleanup_log.up.sql
huang 931e140e8e
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m35s
feat: 实现 IoT 卡轮询系统(支持千万级卡规模)
实现功能:
- 实名状态检查轮询(可配置间隔)
- 卡流量检查轮询(支持跨月流量追踪)
- 套餐检查与超额自动停机
- 分布式并发控制(Redis 信号量)
- 手动触发轮询(单卡/批量/条件筛选)
- 数据清理配置与执行
- 告警规则与历史记录
- 实时监控统计(队列/性能/并发)

性能优化:
- Redis 缓存卡信息,减少 DB 查询
- Pipeline 批量写入 Redis
- 异步流量记录写入
- 渐进式初始化(10万卡/批)

压测工具(scripts/benchmark/):
- Mock Gateway 模拟上游服务
- 测试卡生成器
- 配置初始化脚本
- 实时监控脚本

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 17:32:44 +08:00

35 lines
1.5 KiB
SQL
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.
-- 数据清理日志表
CREATE TABLE IF NOT EXISTS tb_data_cleanup_log (
id BIGSERIAL PRIMARY KEY,
table_name VARCHAR(100) NOT NULL,
cleanup_type VARCHAR(50) NOT NULL,
retention_days INT NOT NULL,
deleted_count BIGINT NOT NULL DEFAULT 0,
duration_ms BIGINT NOT NULL DEFAULT 0,
status VARCHAR(20) NOT NULL,
error_message TEXT,
started_at TIMESTAMP NOT NULL,
completed_at TIMESTAMP,
triggered_by BIGINT
);
-- 索引
CREATE INDEX idx_data_cleanup_log_table_name ON tb_data_cleanup_log(table_name);
CREATE INDEX idx_data_cleanup_log_started_at ON tb_data_cleanup_log(started_at);
CREATE INDEX idx_data_cleanup_log_status ON tb_data_cleanup_log(status);
-- 表注释
COMMENT ON TABLE tb_data_cleanup_log IS '数据清理日志表 - 记录所有数据清理操作';
-- 列注释
COMMENT ON COLUMN tb_data_cleanup_log.table_name IS '表名';
COMMENT ON COLUMN tb_data_cleanup_log.cleanup_type IS '清理类型scheduled/manual';
COMMENT ON COLUMN tb_data_cleanup_log.retention_days IS '保留天数';
COMMENT ON COLUMN tb_data_cleanup_log.deleted_count IS '删除记录数';
COMMENT ON COLUMN tb_data_cleanup_log.duration_ms IS '执行耗时(毫秒)';
COMMENT ON COLUMN tb_data_cleanup_log.status IS '状态success/failed/running';
COMMENT ON COLUMN tb_data_cleanup_log.error_message IS '错误信息';
COMMENT ON COLUMN tb_data_cleanup_log.started_at IS '开始时间';
COMMENT ON COLUMN tb_data_cleanup_log.completed_at IS '完成时间';
COMMENT ON COLUMN tb_data_cleanup_log.triggered_by IS '触发人ID手动触发时';