286 lines
15 KiB
SQL
286 lines
15 KiB
SQL
/*
|
|
任务调度模块数据库结构
|
|
|
|
业务域:SnailJob任务调度相关表
|
|
包含表:sj_distributed_lock, sj_group_config, sj_namespace_config,
|
|
sj_notify_config, sj_retry_dead_letter, sj_retry_summary,
|
|
sj_retry_task, sj_retry_task_log, sj_server_node,
|
|
sj_system_user_permission, sj_workflow_node, sj_workflow_task_batch
|
|
|
|
创建时间:2025-01-08
|
|
维护人员:项目开发团队
|
|
*/
|
|
|
|
SET NAMES utf8mb4;
|
|
SET FOREIGN_KEY_CHECKS = 0;
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_distributed_lock
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_distributed_lock`;
|
|
CREATE TABLE `sj_distributed_lock` (
|
|
`name` varchar(64) NOT NULL COMMENT '锁名称',
|
|
`lock_until` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '锁定时长',
|
|
`locked_at` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '锁定时间',
|
|
`locked_by` varchar(255) NOT NULL COMMENT '锁定者',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
PRIMARY KEY (`name`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='锁定表';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_group_config
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_group_config`;
|
|
CREATE TABLE `sj_group_config` (
|
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
`namespace_id` varchar(64) NOT NULL COMMENT '命名空间id',
|
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
|
`description` varchar(256) DEFAULT NULL COMMENT '描述',
|
|
`group_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '组状态 0、关闭 1、开启',
|
|
`version` int(11) NOT NULL DEFAULT '1' COMMENT '版本号',
|
|
`group_partition` int(11) DEFAULT '0' COMMENT '分区',
|
|
`init_scene` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否初始化场景 0、关闭 1、开启',
|
|
`bucket_index` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'bucket索引',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uk_namespace_group_partition` (`namespace_id`,`group_name`,`group_partition`),
|
|
KEY `idx_namespace_id` (`namespace_id`),
|
|
KEY `idx_group_name` (`group_name`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='组配置';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_namespace_config
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_namespace_config`;
|
|
CREATE TABLE `sj_namespace_config` (
|
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
`name` varchar(64) NOT NULL COMMENT '命名空间名称',
|
|
`unique_id` varchar(64) NOT NULL COMMENT '唯一id',
|
|
`description` varchar(256) DEFAULT NULL COMMENT '描述',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uk_unique_id` (`unique_id`),
|
|
UNIQUE KEY `uk_name` (`name`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='命名空间';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_notify_config
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_notify_config`;
|
|
CREATE TABLE `sj_notify_config` (
|
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
`namespace_id` varchar(64) NOT NULL DEFAULT '' COMMENT '命名空间id',
|
|
`group_name` varchar(64) NOT NULL DEFAULT '' COMMENT '组名称',
|
|
`business_id` varchar(64) NOT NULL COMMENT '业务id',
|
|
`notify_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '通知状态 0、关闭 1、开启',
|
|
`notify_type` tinyint(4) NOT NULL COMMENT '通知类型',
|
|
`notify_attribute` text NOT NULL COMMENT '配置属性',
|
|
`notify_threshold` int(11) DEFAULT '100' COMMENT '通知阈值',
|
|
`notify_scene` tinyint(4) NOT NULL COMMENT '通知场景',
|
|
`rate_limiter_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '限流状态 0、关闭 1、开启',
|
|
`rate_limiter_threshold` int(11) NOT NULL DEFAULT '20' COMMENT '限流阈值',
|
|
`description` varchar(256) DEFAULT '' COMMENT '描述',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uk_namespace_group_business_type_scene` (`namespace_id`,`group_name`,`business_id`,`notify_type`,`notify_scene`),
|
|
KEY `idx_namespace_id` (`namespace_id`),
|
|
KEY `idx_group_name` (`group_name`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='通知配置';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_retry_dead_letter
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_retry_dead_letter`;
|
|
CREATE TABLE `sj_retry_dead_letter` (
|
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
`namespace_id` varchar(64) NOT NULL COMMENT '命名空间id',
|
|
`unique_id` varchar(64) NOT NULL COMMENT '同组下id唯一',
|
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
|
`idempotent_id` varchar(64) NOT NULL COMMENT '幂等id',
|
|
`biz_no` varchar(64) NOT NULL DEFAULT '' COMMENT '业务编号',
|
|
`executor_name` varchar(512) NOT NULL COMMENT '执行器名称',
|
|
`args_str` text COMMENT '执行方法参数',
|
|
`ext_attrs` varchar(256) DEFAULT '' COMMENT '扩展字段',
|
|
`task_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '任务类型 1、重试数据 2、回调数据',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uk_namespace_group_scene_idempotent` (`namespace_id`,`group_name`,`scene_name`,`idempotent_id`),
|
|
KEY `idx_namespace_id` (`namespace_id`),
|
|
KEY `idx_group_name` (`group_name`),
|
|
KEY `idx_scene_name` (`scene_name`),
|
|
KEY `idx_create_dt` (`create_dt`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='死信队列';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_retry_summary
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_retry_summary`;
|
|
CREATE TABLE `sj_retry_summary` (
|
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
`namespace_id` varchar(64) NOT NULL COMMENT '命名空间id',
|
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
|
`trigger_date` date NOT NULL COMMENT '统计日期',
|
|
`running_num` int(11) NOT NULL DEFAULT '0' COMMENT '重试中',
|
|
`finish_num` int(11) NOT NULL DEFAULT '0' COMMENT '重试完成数量',
|
|
`max_count_num` int(11) NOT NULL DEFAULT '0' COMMENT '重试到达最大次数',
|
|
`suspend_num` int(11) NOT NULL DEFAULT '0' COMMENT '暂停数量',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uk_namespace_group_scene_date` (`namespace_id`,`group_name`,`scene_name`,`trigger_date`),
|
|
KEY `idx_namespace_id` (`namespace_id`),
|
|
KEY `idx_group_name` (`group_name`),
|
|
KEY `idx_scene_name` (`scene_name`),
|
|
KEY `idx_trigger_date` (`trigger_date`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务重试汇总统计表';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_retry_task
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_retry_task`;
|
|
CREATE TABLE `sj_retry_task` (
|
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
`namespace_id` varchar(64) NOT NULL COMMENT '命名空间id',
|
|
`unique_id` varchar(64) NOT NULL COMMENT '同组下id唯一',
|
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
|
`idempotent_id` varchar(64) NOT NULL COMMENT '幂等id',
|
|
`biz_no` varchar(64) NOT NULL DEFAULT '' COMMENT '业务编号',
|
|
`executor_name` varchar(512) NOT NULL COMMENT '执行器名称',
|
|
`args_str` text COMMENT '执行方法参数',
|
|
`ext_attrs` varchar(256) DEFAULT '' COMMENT '扩展字段',
|
|
`next_trigger_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '下次触发时间',
|
|
`retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '重试次数',
|
|
`retry_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '重试状态 0、重试中 1、成功 2、最大次数',
|
|
`task_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '任务类型 1、重试数据 2、回调数据',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uk_namespace_group_scene_idempotent` (`namespace_id`,`group_name`,`scene_name`,`idempotent_id`),
|
|
KEY `idx_namespace_id` (`namespace_id`),
|
|
KEY `idx_group_name` (`group_name`),
|
|
KEY `idx_scene_name` (`scene_name`),
|
|
KEY `idx_next_trigger_at` (`next_trigger_at`),
|
|
KEY `idx_retry_status` (`retry_status`),
|
|
KEY `idx_create_dt` (`create_dt`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='任务信息';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_retry_task_log
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_retry_task_log`;
|
|
CREATE TABLE `sj_retry_task_log` (
|
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
`namespace_id` varchar(64) NOT NULL COMMENT '命名空间id',
|
|
`unique_id` varchar(64) NOT NULL COMMENT '同组下id唯一',
|
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
|
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
|
|
`idempotent_id` varchar(64) NOT NULL COMMENT '幂等id',
|
|
`biz_no` varchar(64) NOT NULL DEFAULT '' COMMENT '业务编号',
|
|
`executor_name` varchar(512) NOT NULL COMMENT '执行器名称',
|
|
`args_str` text COMMENT '执行方法参数',
|
|
`ext_attrs` varchar(256) DEFAULT '' COMMENT '扩展字段',
|
|
`retry_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '重试状态 0、重试中 1、成功 2、最大次数',
|
|
`task_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '任务类型 1、重试数据 2、回调数据',
|
|
`real_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '真实触发时间',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_namespace_id` (`namespace_id`),
|
|
KEY `idx_group_name` (`group_name`),
|
|
KEY `idx_scene_name` (`scene_name`),
|
|
KEY `idx_idempotent_id` (`idempotent_id`),
|
|
KEY `idx_create_dt` (`create_dt`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='重试日志';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_server_node
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_server_node`;
|
|
CREATE TABLE `sj_server_node` (
|
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
`namespace_id` varchar(64) NOT NULL COMMENT '命名空间id',
|
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
|
`host_id` varchar(64) NOT NULL COMMENT '主机id',
|
|
`host_ip` varchar(64) NOT NULL COMMENT '主机ip',
|
|
`host_port` int(11) NOT NULL COMMENT '主机端口',
|
|
`expire_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
|
|
`node_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '节点类型 1、客户端 2、服务端',
|
|
`ext_attrs` varchar(256) DEFAULT '' COMMENT '扩展字段',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uk_namespace_group_host` (`namespace_id`,`group_name`,`host_id`),
|
|
KEY `idx_namespace_id` (`namespace_id`),
|
|
KEY `idx_group_name` (`group_name`),
|
|
KEY `idx_expire_at` (`expire_at`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='服务器节点';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_system_user_permission
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_system_user_permission`;
|
|
CREATE TABLE `sj_system_user_permission` (
|
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
`group_name` varchar(64) NOT NULL COMMENT '组名称',
|
|
`namespace_id` varchar(64) NOT NULL COMMENT '命名空间id',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_group_name` (`group_name`),
|
|
KEY `idx_namespace_id` (`namespace_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统用户权限表';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_workflow_node
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_workflow_node`;
|
|
CREATE TABLE `sj_workflow_node` (
|
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
`namespace_id` varchar(64) NOT NULL COMMENT '命名空间id',
|
|
`workflow_id` bigint(20) unsigned NOT NULL COMMENT '工作流id',
|
|
`node_name` varchar(64) NOT NULL COMMENT '节点名称',
|
|
`node_type` tinyint(4) NOT NULL COMMENT '节点类型 1、任务节点 2、条件节点 3、回调节点',
|
|
`job_id` bigint(20) unsigned DEFAULT NULL COMMENT '关联的任务id',
|
|
`expression_type` tinyint(4) DEFAULT NULL COMMENT '表达式类型 1、SpEL 2、Aviator 3、QL',
|
|
`expression` varchar(256) DEFAULT NULL COMMENT '条件节点的表达式',
|
|
`fail_strategy` tinyint(4) NOT NULL DEFAULT '1' COMMENT '失败策略 1、跳过 2、阻塞',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_workflow_id` (`workflow_id`),
|
|
KEY `idx_namespace_id` (`namespace_id`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工作流节点';
|
|
|
|
-- ----------------------------
|
|
-- Table structure for sj_workflow_task_batch
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sj_workflow_task_batch`;
|
|
CREATE TABLE `sj_workflow_task_batch` (
|
|
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
|
`namespace_id` varchar(64) NOT NULL COMMENT '命名空间id',
|
|
`workflow_id` bigint(20) unsigned NOT NULL COMMENT '工作流id',
|
|
`task_batch_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '任务批次状态 0、运行中 1、成功 2、失败 3、取消 4、暂停',
|
|
`operation_reason` tinyint(4) NOT NULL DEFAULT '0' COMMENT '操作原因 0、系统触发 1、人工操作',
|
|
`workflow_task_batch_id` bigint(20) unsigned NOT NULL COMMENT '工作流任务批次id',
|
|
`execution_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '执行时间',
|
|
`flow_info` text COMMENT '流程信息',
|
|
`ext_attrs` varchar(256) DEFAULT NULL COMMENT '扩展字段',
|
|
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
|
`deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1、删除',
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_workflow_id` (`workflow_id`),
|
|
KEY `idx_namespace_id` (`namespace_id`),
|
|
KEY `idx_execution_at` (`execution_at`),
|
|
KEY `idx_task_batch_status` (`task_batch_status`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工作流任务批次';
|
|
|
|
SET FOREIGN_KEY_CHECKS = 1; |