SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci; -- 使用 utf8mb4 连接字符集,保证中文注释、中文名称和 emoji 在导入时不被降级。 CREATE DATABASE IF NOT EXISTS hyapp_cron DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE hyapp_cron; CREATE TABLE IF NOT EXISTS cron_task_leases ( task_name VARCHAR(96) NOT NULL COMMENT '任务名称', app_code VARCHAR(32) NOT NULL COMMENT '应用编码,用于多租户隔离', owner_node_id VARCHAR(128) NOT NULL COMMENT '房主节点 ID', lease_until_ms BIGINT NOT NULL COMMENT '租约截止时间,UTC epoch ms', updated_at_ms BIGINT NOT NULL COMMENT '更新时间,UTC epoch ms', PRIMARY KEY (task_name, app_code), KEY idx_cron_task_leases_expire (lease_until_ms) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务租约表'; CREATE TABLE IF NOT EXISTS cron_task_runs ( run_id VARCHAR(96) NOT NULL COMMENT '运行 ID', task_name VARCHAR(96) NOT NULL COMMENT '任务名称', app_code VARCHAR(32) NOT NULL COMMENT '应用编码,用于多租户隔离', owner_node_id VARCHAR(128) NOT NULL COMMENT '房主节点 ID', status VARCHAR(32) NOT NULL COMMENT '业务状态', claimed_count INT NOT NULL DEFAULT 0 COMMENT '认领数量', processed_count INT NOT NULL DEFAULT 0 COMMENT '处理数量', success_count INT NOT NULL DEFAULT 0 COMMENT '成功数量', failure_count INT NOT NULL DEFAULT 0 COMMENT '失败数量', started_at_ms BIGINT NOT NULL COMMENT '开始时间,UTC epoch ms', finished_at_ms BIGINT NULL COMMENT '结束时间,UTC epoch ms', duration_ms BIGINT NOT NULL DEFAULT 0 COMMENT '持续时长,毫秒', error_message VARCHAR(512) NOT NULL DEFAULT '' COMMENT '错误消息', PRIMARY KEY (run_id), KEY idx_cron_task_runs_task_time (task_name, app_code, started_at_ms), KEY idx_cron_task_runs_status (status, started_at_ms) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务运行记录表';