| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286 |
- /*
- 任务调度模块数据库结构
-
- 业务域: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;
|