下面是一个java结合xxljob的定时任务的数据库结构,实现下面的功能,定义好queue_job,在代码执行照片那个有需要定时调用的方法时,通过插入数据后,利用xxljob定时执行改任务。
CREATE TABLE `queue_job` (
`id` bigint NOT NULL COMMENT '作业id',
`module_code` varchar(32) NOT NULL COMMENT '模块代码(应用代码)',
`job_code` varchar(32) NOT NULL COMMENT '作业代码',
`job_name` varchar(64) DEFAULT NULL COMMENT '作业名',
`job_status` char(1) NOT NULL COMMENT '作业状态,C创建,L锁定,F失败,S成功',
`business_no` varchar(64) NOT NULL COMMENT '业务号',
`plan_exec_time` datetime DEFAULT NULL COMMENT '作业计划执行时间',
`exec_time` datetime DEFAULT NULL COMMENT '作业最新执行时间',
`exec_count` int DEFAULT NULL COMMENT '作业执行次数',
`job_params` varchar(1024) DEFAULT NULL COMMENT '作业参数',
`creator` varchar(64) NOT NULL COMMENT '创建者->对应ip和线程编号',
`gmt_created` datetime NOT NULL COMMENT '创建时间',
`modifier` varchar(64) NOT NULL COMMENT '修改者->对应ip和线程编号',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除 Y/N',
PRIMARY KEY (`id`),
KEY `idx_queue_job_businessno` (`business_no`),
KEY `idx_queue_job_modulecode_jobstatus_exectime` (`module_code`,`job_status`,`exec_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='作业表';
CREATE TABLE `queue_job_exec_log` (
`id` bigint NOT NULL COMMENT '作业执行日志id',
`job_id` bigint DEFAULT NULL COMMENT '作业id',
`exec_time` datetime DEFAULT NULL COMMENT '作业执行时间',
`manual_exec_user` varchar(64) DEFAULT NULL COMMENT '人工执行用户',
`summary_info` varchar(512) DEFAULT NULL COMMENT '作业执行概要信息(JSON格式)',
`err_msg` varchar(512) DEFAULT NULL COMMENT '作业执行错误信息',
`err_stack` varchar(4096) DEFAULT NULL COMMENT '作业执行错误堆栈',
`creator` varchar(64) NOT NULL COMMENT '创建者->对应ip和线程编号',
`gmt_created` datetime NOT NULL COMMENT '创建时间',
`modifier` varchar(64) NOT NULL COMMENT '修改者->对应ip和线程编号',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除 Y/N',
PRIMARY KEY (`id`),
KEY `idx_queue_job_exec_log_jobid` (`job_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='作业执行日志表'
CREATE TABLE `queue_job_exec_log` (
`id` bigint NOT NULL COMMENT '作业执行日志id',
`job_id` bigint DEFAULT NULL COMMENT '作业id',
`exec_time` datetime DEFAULT NULL COMMENT '作业执行时间',
`manual_exec_user` varchar(64) DEFAULT NULL COMMENT '人工执行用户',
`summary_info` varchar(512) DEFAULT NULL COMMENT '作业执行概要信息(JSON格式)',
`err_msg` varchar(512) DEFAULT NULL COMMENT '作业执行错误信息',
`err_stack` varchar(4096) DEFAULT NULL COMMENT '作业执行错误堆栈',
`creator` varchar(64) NOT NULL COMMENT '创建者->对应ip和线程编号',
`gmt_created` datetime NOT NULL COMMENT '创建时间',
`modifier` varchar(64) NOT NULL COMMENT '修改者->对应ip和线程编号',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除 Y/N',
PRIMARY KEY (`id`),
KEY `idx_queue_job_exec_log_jobid` (`job_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='作业执行日志表'
CREATE TABLE `queue_job_task_exec_log` (
`id` bigint NOT NULL COMMENT '作业任务执行日志id',
`job_exec_log_id` bigint DEFAULT NULL COMMENT '作业执行日志id',
`job_id` bigint DEFAULT NULL COMMENT '作业id',
`job_task_id` bigint DEFAULT NULL COMMENT '作业任务id',
`start_pos` int DEFAULT NULL COMMENT '作业任务执行的起始位置',
`exec_time` datetime DEFAULT NULL COMMENT '作业任务执行时间',
`summary_info` varchar(512) DEFAULT NULL COMMENT '作业任务执行概要信息(JSON格式)',
`err_msg` varchar(512) DEFAULT NULL COMMENT '作业任务执行错误信息',
`err_stack` varchar(4096) DEFAULT NULL COMMENT '作业任务执行错误堆栈',
`creator` varchar(64) NOT NULL COMMENT '创建者->对应ip和线程编号',
`gmt_created` datetime NOT NULL COMMENT '创建时间',
`modifier` varchar(64) NOT NULL COMMENT '修改者->对应ip和线程编号',
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
`is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除 Y/N',
PRIMARY KEY (`id`),
KEY `idx_queue_job_task_exec_log_jobexeclogid_jobtaskid` (`job_exec_log_id`,`job_task_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='作业任务执行日志表'