-- ==================================================== -- 定时任务表 -- ==================================================== DROP TABLE IF EXISTS `tb_crontab_task`; CREATE TABLE `tb_crontab_task` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `task_id` VARCHAR(64) NOT NULL COMMENT '任务ID', `task_name` VARCHAR(100) NOT NULL COMMENT '任务名称', `task_group` VARCHAR(50) NOT NULL DEFAULT 'DEFAULT' COMMENT '任务分组', `meta_id` VARCHAR(64) NOT NULL COMMENT '任务元数据ID', `default_recipient` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否使用默认接收人(0:否 1:是)', `bean_name` VARCHAR(100) NOT NULL COMMENT 'Bean名称', `method_name` VARCHAR(100) NOT NULL COMMENT '方法名称', `method_params` VARCHAR(500) DEFAULT NULL COMMENT '方法参数', `cron_expression` VARCHAR(100) NOT NULL COMMENT 'Cron表达式', `status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '任务状态(0:暂停 1:运行中)', `description` VARCHAR(500) DEFAULT NULL COMMENT '任务描述', `concurrent` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否允许并发执行(0:否 1:是)', `misfire_policy` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '错过执行策略(1:立即执行 2:执行一次 3:放弃执行)', `creator` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` DATETIME DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0:否 1:是)', PRIMARY KEY (`id`), KEY `idx_task_name` (`task_name`), KEY `idx_bean_name` (`bean_name`), KEY `idx_status` (`status`), KEY `idx_deleted` (`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='定时任务配置表'; -- ==================================================== -- 定时任务执行日志表 -- ==================================================== DROP TABLE IF EXISTS `tb_crontab_log`; CREATE TABLE `tb_crontab_log` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `task_id` VARCHAR(64) NOT NULL COMMENT '任务ID', `task_name` VARCHAR(100) NOT NULL COMMENT '任务名称', `task_group` VARCHAR(50) NOT NULL DEFAULT 'DEFAULT' COMMENT '任务分组', `bean_name` VARCHAR(100) NOT NULL COMMENT 'Bean名称', `method_name` VARCHAR(100) NOT NULL COMMENT '方法名称', `method_params` VARCHAR(500) DEFAULT NULL COMMENT '方法参数', `execute_status` TINYINT(1) NOT NULL COMMENT '执行状态(0:失败 1:成功)', `execute_message` TEXT DEFAULT NULL COMMENT '执行结果信息', `exception_info` TEXT DEFAULT NULL COMMENT '异常信息', `start_time` DATETIME NOT NULL COMMENT '开始时间', `end_time` DATETIME DEFAULT NULL COMMENT '结束时间', `execute_duration` INT DEFAULT NULL COMMENT '执行时长(毫秒)', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` DATETIME DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0:否 1:是)', PRIMARY KEY (`id`), KEY `idx_task_id` (`task_id`), KEY `idx_task_name` (`task_name`), KEY `idx_execute_status` (`execute_status`), KEY `idx_start_time` (`start_time`), KEY `idx_deleted` (`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='定时任务执行日志表'; -- ==================================================== -- 数据采集项表(定时任务采集结果存储) -- ==================================================== DROP TABLE IF EXISTS `tb_data_collection_item`; CREATE TABLE `tb_data_collection_item` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `task_id` VARCHAR(64) NOT NULL COMMENT '关联任务ID', `log_id` VARCHAR(64) NOT NULL COMMENT '关联执行日志ID', `title` VARCHAR(255) DEFAULT NULL COMMENT '文章标题', `content` LONGTEXT DEFAULT NULL COMMENT '文章内容(HTML)', `summary` VARCHAR(500) DEFAULT NULL COMMENT '文章摘要', `source` VARCHAR(255) DEFAULT NULL COMMENT '来源(如 人民日报)', `source_url` VARCHAR(500) DEFAULT NULL COMMENT '来源URL(用于去重)', `category` VARCHAR(100) DEFAULT NULL COMMENT '分类(politics/society等)', `author` VARCHAR(100) DEFAULT NULL COMMENT '作者', `publish_time` DATETIME DEFAULT NULL COMMENT '发布时间', `cover_image` VARCHAR(500) DEFAULT NULL COMMENT '封面图片URL', `images` TEXT DEFAULT NULL COMMENT '图片列表(JSON)', `tags` VARCHAR(500) DEFAULT NULL COMMENT '标签(逗号分隔)', `status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '状态(0未处理 1已转换为资源 2已忽略)', `execute_status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '执行状态(0未执行 1已执行)', `execute_message` TEXT DEFAULT NULL COMMENT '执行结果信息', `resource_id` VARCHAR(64) DEFAULT NULL COMMENT '转换后的资源ID', `crawl_time` DATETIME DEFAULT NULL COMMENT '爬取时间', `process_time` DATETIME DEFAULT NULL COMMENT '处理时间', `processor` VARCHAR(64) DEFAULT NULL COMMENT '处理人', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` DATETIME DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0:否 1:是)', PRIMARY KEY (`id`), KEY `idx_task_id` (`task_id`), KEY `idx_log_id` (`log_id`), KEY `idx_status` (`status`), KEY `idx_publish_time` (`publish_time`), KEY `idx_source_url` (`source_url`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='数据采集项表'; -- ==================================================== -- 定时任务元数据表(存储爬虫任务的元数据配置) -- ==================================================== DROP TABLE IF EXISTS `tb_crontab_task_meta`; CREATE TABLE `tb_crontab_task_meta` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `meta_id` VARCHAR(64) NOT NULL COMMENT '元数据ID', `name` VARCHAR(100) NOT NULL COMMENT '任务名称', `description` VARCHAR(500) DEFAULT NULL COMMENT '任务描述', `category` VARCHAR(50) NOT NULL COMMENT '任务分类(如:人民日报新闻爬取)', `bean_name` VARCHAR(100) NOT NULL COMMENT 'Bean名称(执行器类名)', `method_name` VARCHAR(100) NOT NULL COMMENT '执行方法名', `script_path` VARCHAR(255) DEFAULT NULL COMMENT 'Python脚本路径(相对于basePath)', `param_schema` TEXT DEFAULT NULL COMMENT '参数模板(JSON格式,定义参数名、类型、描述、默认值等)', `auto_publish` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否自动发布', `sort_order` INT DEFAULT 0 COMMENT '排序号', `creator` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` DATETIME DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0:否 1:是)', PRIMARY KEY (`id`), UNIQUE KEY `uk_meta_id` (`meta_id`), KEY `idx_category` (`category`), KEY `idx_deleted` (`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='定时任务元数据表'; -- ==================================================== -- 定时任务邮件通知默认接收人员表(关联任务元数据,定义默认接收人员) -- ==================================================== DROP TABLE IF EXISTS `tb_crontab_email_default`; CREATE TABLE `tb_crontab_email_default` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `default_id` VARCHAR(64) NOT NULL COMMENT '默认ID', `meta_id` VARCHAR(64) NOT NULL COMMENT '关联任务元数据ID', `user_id` VARCHAR(64) NOT NULL COMMENT '关联用户ID', `creator` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` DATETIME DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0:否 1:是)', PRIMARY KEY (`id`), UNIQUE KEY `uk_default_id` (`default_id`), UNIQUE KEY `uk_meta_id` (`meta_id`), KEY `idx_deleted` (`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='定时任务邮件通知默认接收人员表'; -- ==================================================== -- 定时任务邮件接收人表(1对多) -- ==================================================== DROP TABLE IF EXISTS `tb_crontab_email_recipient`; CREATE TABLE `tb_crontab_email_recipient` ( `id` VARCHAR(64) NOT NULL COMMENT '主键ID', `recipient_id` VARCHAR(64) NOT NULL COMMENT '接收人ID', `task_id` VARCHAR(64) DEFAULT NULL COMMENT '关联任务ID(NULL表示不属于任何任务)', `user_id` VARCHAR(64) DEFAULT NULL COMMENT '关联用户ID', `email` VARCHAR(100) NOT NULL COMMENT '邮箱地址', `name` VARCHAR(100) DEFAULT NULL COMMENT '接收人姓名', `creator` VARCHAR(64) DEFAULT NULL COMMENT '创建者', `updater` VARCHAR(64) DEFAULT NULL COMMENT '更新者', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` DATETIME DEFAULT NULL COMMENT '删除时间', `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0:否 1:是)', PRIMARY KEY (`id`), UNIQUE KEY `uk_recipient_id` (`recipient_id`), KEY `idx_task_id` (`task_id`), KEY `idx_user_id` (`user_id`), KEY `idx_email` (`email`), KEY `idx_deleted` (`deleted`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='定时任务邮件接收人表';