-- ============================================================================ -- 定时任务管理功能 SQL 脚本 -- 作者: Leocoder -- 创建时间: 2025-09-27 -- 描述: 支持动态配置和管理的定时任务系统表结构 -- ============================================================================ -- ---------------------------- -- Table structure for sys_job -- ---------------------------- DROP TABLE IF EXISTS `sys_job`; CREATE TABLE `sys_job` ( `job_id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务ID', `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '任务名称', `job_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '任务类型[1-管理平台 2-小程序 3-App]', `class_path` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '类路径', `method_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '方法名称', `cron_expression` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT 'cron表达式', `policy_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT 'cron计划策略[1-立即执行 2-执行一次 3-放弃执行]', `job_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '任务状态[0-正常 1-暂停]', `job_params` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '任务参数', `remark` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建人', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间', `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '修改人', PRIMARY KEY (`job_id`) USING BTREE, KEY `idx_job_status` (`job_status`), KEY `idx_job_type` (`job_type`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='定时任务管理表'; -- ---------------------------- -- Records of sys_job - 初始化示例数据 -- ---------------------------- BEGIN; INSERT INTO `sys_job` (`job_id`, `job_name`, `job_type`, `class_path`, `method_name`, `cron_expression`, `policy_status`, `job_status`, `job_params`, `remark`, `create_by`) VALUES (1, '测试任务-单参数', '1', 'org.leocoder.thin.job.task.CoderJobTimerTaskRunner', 'paramAction', '0 0/5 * * * ?', '1', '1', 'CODER-THIN-TEST', '每5分钟执行一次的测试任务', 'Leocoder'), (2, '测试任务-无参数', '1', 'org.leocoder.thin.job.task.CoderJobTimerTaskRunner', 'noParamAction', '0 0/10 * * * ?', '3', '1', '', '每10分钟执行一次的无参数测试任务', 'Leocoder'), (3, '测试任务-多参数', '1', 'org.leocoder.thin.job.task.CoderJobTimerTaskRunner', 'manyParamsAction', '0 0 2 * * ?', '1', '1', 'CODER-THIN,999', '每天凌晨2点执行的多参数测试任务', 'Leocoder'); COMMIT; -- ---------------------------- -- Table structure for sys_job_log (可选,用于任务执行日志记录) -- ---------------------------- DROP TABLE IF EXISTS `sys_job_log`; CREATE TABLE `sys_job_log` ( `job_log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务日志ID', `job_id` bigint NOT NULL COMMENT '任务ID', `job_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '任务名称', `job_group` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT 'DEFAULT' COMMENT '任务组名', `invoke_target` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '调用目标字符串', `job_message` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '日志信息', `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '执行状态[0-正常 1-失败]', `exception_info` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '异常信息', `start_time` datetime DEFAULT NULL COMMENT '开始时间', `stop_time` datetime DEFAULT NULL COMMENT '结束时间', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`job_log_id`) USING BTREE, KEY `idx_job_id` (`job_id`), KEY `idx_status` (`status`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='定时任务执行日志表'; -- ---------------------------- -- 添加菜单权限数据 (可选,用于前端菜单展示) -- ---------------------------- -- 注意:以下SQL需要根据实际的菜单权限表结构进行调整 -- 定时任务管理菜单 -- INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `url`, `menu_type`, `visible`, `perms`, `icon`, `create_by`, `remark`) VALUES -- ('定时任务', 2, 6, '/monitor/job', 'C', '0', 'monitor:job:view', 'job', 'Leocoder', '定时任务菜单'); -- 定时任务按钮权限 -- INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `url`, `menu_type`, `visible`, `perms`, `create_by`, `remark`) VALUES -- ('任务查询', 最新菜单ID, 1, '#', 'F', '0', 'monitor:job:list', 'Leocoder', ''), -- ('任务新增', 最新菜单ID, 2, '#', 'F', '0', 'monitor:job:add', 'Leocoder', ''), -- ('任务修改', 最新菜单ID, 3, '#', 'F', '0', 'monitor:job:edit', 'Leocoder', ''), -- ('任务删除', 最新菜单ID, 4, '#', 'F', '0', 'monitor:job:delete', 'Leocoder', ''), -- ('任务执行', 最新菜单ID, 5, '#', 'F', '0', 'monitor:job:run', 'Leocoder', ''), -- ('状态修改', 最新菜单ID, 6, '#', 'F', '0', 'monitor:job:update', 'Leocoder', ''); -- ============================================================================ -- 说明文档 -- ============================================================================ /* 1. 表结构说明: - sys_job: 定时任务配置表,存储任务的基本信息和调度配置 - sys_job_log: 任务执行日志表,记录每次任务的执行情况(可选) 2. 字段说明: - job_id: 任务唯一标识,雪花算法生成 - class_path: 任务执行类的完整路径 - method_name: 要执行的方法名 - cron_expression: 标准cron表达式 - policy_status: 执行策略(1立即执行/2执行一次/3放弃执行) - job_status: 任务状态(0正常/1暂停) - job_params: 任务参数,多个参数用逗号分隔 - is_delete: 逻辑删除标识 3. 使用说明: - 支持多种参数类型:String, Integer, Boolean - 支持动态启停任务 - 支持任务执行日志记录 - 集成权限控制机制 4. 注意事项: - 执行类必须实现 CommonTimerTaskRunner 接口 - cron表达式支持秒级精度(6位) - 建议生产环境定期清理执行日志 */