Переглянути джерело

update 更新 snailjob 版本到1.6.0

疯狂的狮子Li 1 рік тому
батько
коміт
2c93bdc5dd

+ 1 - 1
pom.xml

@@ -32,7 +32,7 @@
         <hutool.version>5.8.38</hutool.version>
         <redisson.version>3.50.0</redisson.version>
         <lock4j.version>2.2.7</lock4j.version>
-        <snailjob.version>1.5.0</snailjob.version>
+        <snailjob.version>1.6.0</snailjob.version>
         <satoken.version>1.44.0</satoken.version>
         <lombok.version>1.18.36</lombok.version>
         <logstash.version>7.4</logstash.version>

+ 19 - 6
script/config/nacos/ruoyi-snailjob-server.yml

@@ -25,12 +25,25 @@ spring:
 
 # snail-job 服务端配置
 snail-job:
-  # 拉取重试数据的每批次的大小
-  retry-pull-page-size: 1000
-  # 拉取重试数据的每批次的大小
-  job-pull-page-size: 1000
-  # 服务器端口
+  # 服务端节点IP(默认按照`NetUtil.getLocalIpStr()`)
+  server-host:
+  # 服务端netty的端口号
   server-port: 17888
-  # 日志保存时间(单位: day)
+  # 合并日志默认保存天数
+  merge-Log-days: 1
+  # 合并日志默认的条数
+  merge-Log-num: 500
+  # 配置每批次拉取重试数据的大小
+  retry-pull-page-size: 100
+  # 配置日志保存时间(单位:天)
   log-storage: 7
+  # bucket的总数量
+  bucket-total: 128
+  # Dashboard 任务容错天数
+  summary-day: 7
+  # 配置负载均衡周期时间
+  load-balance-cycle-time: 10
+  # 通知类型默认使用grpc(netty 已经下线)
   rpc-type: grpc
+  # 重试任务拉取的并行度
+  retry-max-pull-parallel: 2

+ 68 - 51
script/sql/oracle/oracle_ry_job.sql

@@ -1,9 +1,8 @@
-
 /*
  SnailJob Database Transfer Tool
  Source Server Type    : MySQL
  Target Server Type    : Oracle
- Date: 2025-04-26 10:01:54
+ Date: 2025-06-21 23:33:11
 */
 
 
@@ -146,17 +145,19 @@ COMMENT ON TABLE sj_notify_recipient IS '告警通知接收人';
 -- sj_retry_dead_letter
 CREATE TABLE sj_retry_dead_letter
 (
-    id            number GENERATED ALWAYS AS IDENTITY,
-    namespace_id  varchar2(64)  DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
-    group_name    varchar2(64)                                             NULL,
-    group_id      number                                                   NOT NULL,
-    scene_name    varchar2(64)                                             NULL,
-    scene_id      number                                                   NOT NULL,    idempotent_id varchar2(64)                                             NULL,
-    biz_no        varchar2(64)  DEFAULT ''                                 NULL,
-    executor_name varchar2(512) DEFAULT ''                                 NULL,
-    args_str      clob                                                     NULL,
-    ext_attrs     clob                                                     NULL,
-    create_dt     date          DEFAULT CURRENT_TIMESTAMP                  NOT NULL
+    id              number GENERATED ALWAYS AS IDENTITY,
+    namespace_id    varchar2(64)  DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
+    group_name      varchar2(64)                                             NULL,
+    group_id        number                                                   NOT NULL,
+    scene_name      varchar2(64)                                             NULL,
+    scene_id        number                                                   NOT NULL,
+    idempotent_id   varchar2(64)                                             NULL,
+    biz_no          varchar2(64)  DEFAULT ''                                 NULL,
+    executor_name   varchar2(512) DEFAULT ''                                 NULL,
+    serializer_name varchar2(32)  DEFAULT 'jackson'                          NULL,
+    args_str        clob                                                     NULL,
+    ext_attrs       clob                                                     NULL,
+    create_dt       date          DEFAULT CURRENT_TIMESTAMP                  NOT NULL
 );
 
 ALTER TABLE sj_retry_dead_letter
@@ -176,6 +177,7 @@ COMMENT ON COLUMN sj_retry_dead_letter.scene_id IS '场景ID';
 COMMENT ON COLUMN sj_retry_dead_letter.idempotent_id IS '幂等id';
 COMMENT ON COLUMN sj_retry_dead_letter.biz_no IS '业务编号';
 COMMENT ON COLUMN sj_retry_dead_letter.executor_name IS '执行器名称';
+COMMENT ON COLUMN sj_retry_dead_letter.serializer_name IS '执行方法参数序列化器名称';
 COMMENT ON COLUMN sj_retry_dead_letter.args_str IS '执行方法参数';
 COMMENT ON COLUMN sj_retry_dead_letter.ext_attrs IS '扩展字段';
 COMMENT ON COLUMN sj_retry_dead_letter.create_dt IS '创建时间';
@@ -189,11 +191,13 @@ CREATE TABLE sj_retry
     group_name      varchar2(64)                                             NULL,
     group_id        number                                                   NOT NULL,
     scene_name      varchar2(64)                                             NULL,
-    scene_id        number                                                   NOT NULL,    idempotent_id   varchar2(64)                                             NULL,
+    scene_id        number                                                   NOT NULL,
+    idempotent_id   varchar2(64)                                             NULL,
     biz_no          varchar2(64)  DEFAULT ''                                 NULL,
     executor_name   varchar2(512) DEFAULT ''                                 NULL,
     args_str        clob                                                     NULL,
     ext_attrs       clob                                                     NULL,
+    serializer_name varchar2(32)  DEFAULT 'jackson'                          NULL,
     next_trigger_at number                                                   NOT NULL,
     retry_count     number        DEFAULT 0                                  NOT NULL,
     retry_status    smallint      DEFAULT 0                                  NOT NULL,
@@ -211,11 +215,10 @@ ALTER TABLE sj_retry
 CREATE UNIQUE INDEX uk_sj_retry_01 ON sj_retry (scene_id, task_type, idempotent_id, deleted);
 
 CREATE INDEX idx_sj_retry_01 ON sj_retry (biz_no);
-CREATE INDEX idx_sj_retry_02 ON sj_retry (retry_status, bucket_index);
-CREATE INDEX idx_sj_retry_03 ON sj_retry (parent_id);
-CREATE INDEX idx_sj_retry_04 ON sj_retry (create_dt);
-CREATE INDEX idx_sj_retry_05 ON sj_retry (idempotent_id);
-
+CREATE INDEX idx_sj_retry_02 ON sj_retry (idempotent_id);
+CREATE INDEX idx_sj_retry_03 ON sj_retry (retry_status, bucket_index);
+CREATE INDEX idx_sj_retry_04 ON sj_retry (parent_id);
+CREATE INDEX idx_sj_retry_05 ON sj_retry (create_dt);
 
 COMMENT ON COLUMN sj_retry.id IS '主键';
 COMMENT ON COLUMN sj_retry.namespace_id IS '命名空间id';
@@ -228,6 +231,7 @@ COMMENT ON COLUMN sj_retry.biz_no IS '业务编号';
 COMMENT ON COLUMN sj_retry.executor_name IS '执行器名称';
 COMMENT ON COLUMN sj_retry.args_str IS '执行方法参数';
 COMMENT ON COLUMN sj_retry.ext_attrs IS '扩展字段';
+COMMENT ON COLUMN sj_retry.serializer_name IS '执行方法参数序列化器名称';
 COMMENT ON COLUMN sj_retry.next_trigger_at IS '下次触发时间';
 COMMENT ON COLUMN sj_retry.retry_count IS '重试次数';
 COMMENT ON COLUMN sj_retry.retry_status IS '重试状态 0、重试中 1、成功 2、最大重试次数';
@@ -295,8 +299,8 @@ CREATE TABLE sj_retry_task_log_message
 ALTER TABLE sj_retry_task_log_message
     ADD CONSTRAINT pk_sj_retry_task_log_message PRIMARY KEY (id);
 
-CREATE INDEX idx_sj_rt_log_message_01 ON sj_retry_task_log_message (namespace_id, group_name, retry_task_id);
-CREATE INDEX idx_sj_rt_log_message_02 ON sj_retry_task_log_message (create_dt);
+CREATE INDEX idx_sj_retry_task_log_message_01 ON sj_retry_task_log_message (namespace_id, group_name, retry_task_id);
+CREATE INDEX idx_sj_retry_task_log_message_02 ON sj_retry_task_log_message (create_dt);
 
 COMMENT ON COLUMN sj_retry_task_log_message.id IS '主键';
 COMMENT ON COLUMN sj_retry_task_log_message.namespace_id IS '命名空间id';
@@ -329,6 +333,8 @@ CREATE TABLE sj_retry_scene_config
     cb_trigger_type     smallint      DEFAULT 1                                  NOT NULL,
     cb_max_count        number        DEFAULT 16                                 NOT NULL,
     cb_trigger_interval varchar2(16)  DEFAULT ''                                 NULL,
+    owner_id            number        DEFAULT NULL                               NULL,
+    labels              varchar2(512) DEFAULT ''                                 NULL,
     description         varchar2(256) DEFAULT ''                                 NULL,
     create_dt           date          DEFAULT CURRENT_TIMESTAMP                  NOT NULL,
     update_dt           date          DEFAULT CURRENT_TIMESTAMP                  NOT NULL
@@ -356,6 +362,8 @@ COMMENT ON COLUMN sj_retry_scene_config.cb_status IS '回调状态 0、不开启
 COMMENT ON COLUMN sj_retry_scene_config.cb_trigger_type IS '1、默认等级 2、固定间隔时间 3、CRON 表达式';
 COMMENT ON COLUMN sj_retry_scene_config.cb_max_count IS '回调的最大执行次数';
 COMMENT ON COLUMN sj_retry_scene_config.cb_trigger_interval IS '回调的最大执行次数';
+COMMENT ON COLUMN sj_retry_scene_config.owner_id IS '负责人id';
+COMMENT ON COLUMN sj_retry_scene_config.labels IS '标签';
 COMMENT ON COLUMN sj_retry_scene_config.description IS '描述';
 COMMENT ON COLUMN sj_retry_scene_config.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_retry_scene_config.update_dt IS '修改时间';
@@ -373,6 +381,7 @@ CREATE TABLE sj_server_node
     expire_at    date                                                     NOT NULL,
     node_type    smallint                                                 NOT NULL,
     ext_attrs    varchar2(256) DEFAULT ''                                 NULL,
+    labels       varchar2(512) DEFAULT ''                                 NULL,
     create_dt    date          DEFAULT CURRENT_TIMESTAMP                  NOT NULL,
     update_dt    date          DEFAULT CURRENT_TIMESTAMP                  NOT NULL
 );
@@ -394,6 +403,7 @@ COMMENT ON COLUMN sj_server_node.host_port IS '机器端口';
 COMMENT ON COLUMN sj_server_node.expire_at IS '过期时间';
 COMMENT ON COLUMN sj_server_node.node_type IS '节点类型 1、客户端 2、是服务端';
 COMMENT ON COLUMN sj_server_node.ext_attrs IS '扩展字段';
+COMMENT ON COLUMN sj_server_node.labels IS '标签';
 COMMENT ON COLUMN sj_server_node.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_server_node.update_dt IS '修改时间';
 COMMENT ON TABLE sj_server_node IS '服务器节点';
@@ -401,7 +411,7 @@ COMMENT ON TABLE sj_server_node IS '服务器节点';
 -- sj_distributed_lock
 CREATE TABLE sj_distributed_lock
 (
-    name       varchar2(64)                              NULL,
+    name       varchar2(64)                              NOT NULL,
     lock_until timestamp(3) DEFAULT CURRENT_TIMESTAMP(3) NOT NULL,
     locked_at  timestamp(3) DEFAULT CURRENT_TIMESTAMP(3) NOT NULL,
     locked_by  varchar2(255)                             NULL,
@@ -442,8 +452,8 @@ COMMENT ON COLUMN sj_system_user.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_system_user.update_dt IS '修改时间';
 COMMENT ON TABLE sj_system_user IS '系统用户表';
 
--- pwd: admin
-INSERT INTO sj_system_user(username, password, role, create_dt, update_dt) VALUES ('admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2, sysdate, sysdate);
+INSERT INTO sj_system_user (username, password, role)
+VALUES ('admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2);
 
 -- sj_system_user_permission
 CREATE TABLE sj_system_user_permission
@@ -459,7 +469,7 @@ CREATE TABLE sj_system_user_permission
 ALTER TABLE sj_system_user_permission
     ADD CONSTRAINT pk_sj_system_user_permission PRIMARY KEY (id);
 
-CREATE UNIQUE INDEX uk_sj_su_permission_01 ON sj_system_user_permission (namespace_id, group_name, system_user_id);
+CREATE UNIQUE INDEX uk_sj_system_user_permission_01 ON sj_system_user_permission (namespace_id, group_name, system_user_id);
 
 COMMENT ON COLUMN sj_system_user_permission.id IS '主键';
 COMMENT ON COLUMN sj_system_user_permission.group_name IS '组名称';
@@ -469,30 +479,6 @@ COMMENT ON COLUMN sj_system_user_permission.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_system_user_permission.update_dt IS '修改时间';
 COMMENT ON TABLE sj_system_user_permission IS '系统用户权限表';
 
--- sj_sequence_alloc
-CREATE TABLE sj_sequence_alloc
-(
-    id           number GENERATED ALWAYS AS IDENTITY,
-    namespace_id varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
-    group_name   varchar2(64) DEFAULT ''                                 NULL,
-    max_id       number       DEFAULT 1                                  NOT NULL,
-    step         number       DEFAULT 100                                NOT NULL,
-    update_dt    date         DEFAULT CURRENT_TIMESTAMP                  NOT NULL
-);
-
-ALTER TABLE sj_sequence_alloc
-    ADD CONSTRAINT pk_sj_sequence_alloc PRIMARY KEY (id);
-
-CREATE UNIQUE INDEX uk_sj_sequence_alloc_01 ON sj_sequence_alloc (namespace_id, group_name);
-
-COMMENT ON COLUMN sj_sequence_alloc.id IS '主键';
-COMMENT ON COLUMN sj_sequence_alloc.namespace_id IS '命名空间id';
-COMMENT ON COLUMN sj_sequence_alloc.group_name IS '组名称';
-COMMENT ON COLUMN sj_sequence_alloc.max_id IS '最大id';
-COMMENT ON COLUMN sj_sequence_alloc.step IS '步长';
-COMMENT ON COLUMN sj_sequence_alloc.update_dt IS '更新时间';
-COMMENT ON TABLE sj_sequence_alloc IS '号段模式序号ID分配表';
-
 -- sj_job
 CREATE TABLE sj_job
 (
@@ -518,7 +504,8 @@ CREATE TABLE sj_job
     bucket_index     number        DEFAULT 0                                  NOT NULL,
     resident         smallint      DEFAULT 0                                  NOT NULL,
     notify_ids       varchar2(128) DEFAULT ''                                 NULL,
-    owner_id         number                                                   NULL,
+    owner_id         number        DEFAULT NULL                               NULL,
+    labels           varchar2(512) DEFAULT ''                                 NULL,
     description      varchar2(256) DEFAULT ''                                 NULL,
     ext_attrs        varchar2(256) DEFAULT ''                                 NULL,
     deleted          smallint      DEFAULT 0                                  NOT NULL,
@@ -556,6 +543,7 @@ COMMENT ON COLUMN sj_job.bucket_index IS 'bucket';
 COMMENT ON COLUMN sj_job.resident IS '是否是常驻任务';
 COMMENT ON COLUMN sj_job.notify_ids IS '通知告警场景配置id列表';
 COMMENT ON COLUMN sj_job.owner_id IS '负责人id';
+COMMENT ON COLUMN sj_job.labels IS '标签';
 COMMENT ON COLUMN sj_job.description IS '描述';
 COMMENT ON COLUMN sj_job.ext_attrs IS '扩展字段';
 COMMENT ON COLUMN sj_job.deleted IS '逻辑删除 1、删除';
@@ -563,7 +551,7 @@ COMMENT ON COLUMN sj_job.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_job.update_dt IS '修改时间';
 COMMENT ON TABLE sj_job IS '任务信息';
 
-INSERT INTO sj_job(namespace_id, group_name, job_name, args_str, args_type, next_trigger_at, job_status, task_type, route_key, executor_type, executor_info, trigger_type, trigger_interval, block_strategy,executor_timeout, max_retry_times, parallel_num, retry_interval, bucket_index, resident, notify_ids, owner_id, description, ext_attrs, deleted, create_dt, update_dt) VALUES ('dev', 'ruoyi_group', 'demo-job', NULL, 1, 1710344035622, 1, 1, 4, 1, 'testJobExecutor', 2, '60', 1, 60, 3, 1, 1, 116, 0, '', 1,'', '', 0, sysdate, sysdate);
+INSERT INTO sj_job(namespace_id, group_name, job_name, args_str, args_type, next_trigger_at, job_status, task_type, route_key, executor_type, executor_info, trigger_type, trigger_interval, block_strategy,executor_timeout, max_retry_times, parallel_num, retry_interval, bucket_index, resident, notify_ids, owner_id, labels, description, ext_attrs, deleted, create_dt, update_dt) VALUES ('dev', 'ruoyi_group', 'demo-job', NULL, 1, 1710344035622, 1, 1, 4, 1, 'testJobExecutor', 2, '60', 1, 60, 3, 1, 1, 116, 0, '', 1, '','', '', 0, sysdate, sysdate);
 
 -- sj_job_log_message
 CREATE TABLE sj_job_log_message
@@ -799,6 +787,7 @@ CREATE TABLE sj_workflow
     notify_ids       varchar2(128) DEFAULT ''                                 NULL,
     bucket_index     number        DEFAULT 0                                  NOT NULL,
     version          number                                                   NOT NULL,
+    owner_id         number        DEFAULT NULL                               NULL,
     ext_attrs        varchar2(256) DEFAULT ''                                 NULL,
     deleted          smallint      DEFAULT 0                                  NOT NULL,
     create_dt        date          DEFAULT CURRENT_TIMESTAMP                  NOT NULL,
@@ -827,6 +816,7 @@ COMMENT ON COLUMN sj_workflow.wf_context IS '上下文';
 COMMENT ON COLUMN sj_workflow.notify_ids IS '通知告警场景配置id列表';
 COMMENT ON COLUMN sj_workflow.bucket_index IS 'bucket';
 COMMENT ON COLUMN sj_workflow.version IS '版本号';
+COMMENT ON COLUMN sj_workflow.owner_id IS '负责人id';
 COMMENT ON COLUMN sj_workflow.ext_attrs IS '扩展字段';
 COMMENT ON COLUMN sj_workflow.deleted IS '逻辑删除 1、删除';
 COMMENT ON COLUMN sj_workflow.create_dt IS '创建时间';
@@ -921,3 +911,30 @@ COMMENT ON COLUMN sj_workflow_task_batch.deleted IS '逻辑删除 1、删除';
 COMMENT ON COLUMN sj_workflow_task_batch.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_workflow_task_batch.update_dt IS '修改时间';
 COMMENT ON TABLE sj_workflow_task_batch IS '工作流批次';
+
+-- sj_job_executor
+CREATE TABLE sj_job_executor
+(
+    id            number GENERATED ALWAYS AS IDENTITY,
+    namespace_id  varchar2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' NULL,
+    group_name    varchar2(64)                                            NULL,
+    executor_info varchar2(256)                                           NULL,
+    executor_type varchar2(3)                                             NULL,
+    create_dt     date         DEFAULT CURRENT_TIMESTAMP                  NOT NULL,
+    update_dt     date         DEFAULT CURRENT_TIMESTAMP                  NOT NULL
+);
+
+ALTER TABLE sj_job_executor
+    ADD CONSTRAINT pk_sj_job_executor PRIMARY KEY (id);
+
+CREATE INDEX idx_sj_job_executor_01 ON sj_job_executor (namespace_id, group_name);
+CREATE INDEX idx_sj_job_executor_02 ON sj_job_executor (create_dt);
+
+COMMENT ON COLUMN sj_job_executor.id IS '主键';
+COMMENT ON COLUMN sj_job_executor.namespace_id IS '命名空间id';
+COMMENT ON COLUMN sj_job_executor.group_name IS '组名称';
+COMMENT ON COLUMN sj_job_executor.executor_info IS '任务执行器名称';
+COMMENT ON COLUMN sj_job_executor.executor_type IS '1:java 2:python 3:go';
+COMMENT ON COLUMN sj_job_executor.create_dt IS '创建时间';
+COMMENT ON COLUMN sj_job_executor.update_dt IS '修改时间';
+COMMENT ON TABLE sj_job_executor IS '任务执行器信息';

+ 60 - 44
script/sql/postgres/postgres_ry_job.sql

@@ -2,7 +2,7 @@
  SnailJob Database Transfer Tool
  Source Server Type    : MySQL
  Target Server Type    : PostgreSQL
- Date: 2025-04-26 09:56:45
+ Date: 2025-06-21 23:23:10
 */
 
 
@@ -133,18 +133,19 @@ COMMENT ON TABLE sj_notify_recipient IS '告警通知接收人';
 -- sj_retry_dead_letter
 CREATE TABLE sj_retry_dead_letter
 (
-    id            bigserial PRIMARY KEY,
-    namespace_id  varchar(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
-    group_name    varchar(64)  NOT NULL,
-    group_id      bigint       NOT NULL,
-    scene_name    varchar(64)  NOT NULL,
-    scene_id      bigint       NOT NULL,
-    idempotent_id varchar(64)  NOT NULL,
-    biz_no        varchar(64)  NOT NULL DEFAULT '',
-    executor_name varchar(512) NOT NULL DEFAULT '',
-    args_str      text         NOT NULL,
-    ext_attrs     text         NOT NULL,
-    create_dt     timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP
+    id              bigserial PRIMARY KEY,
+    namespace_id    varchar(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name      varchar(64)  NOT NULL,
+    group_id        bigint       NOT NULL,
+    scene_name      varchar(64)  NOT NULL,
+    scene_id        bigint       NOT NULL,
+    idempotent_id   varchar(64)  NOT NULL,
+    biz_no          varchar(64)  NOT NULL DEFAULT '',
+    executor_name   varchar(512) NOT NULL DEFAULT '',
+    serializer_name varchar(32)  NOT NULL DEFAULT 'jackson',
+    args_str        text         NOT NULL,
+    ext_attrs       text         NOT NULL,
+    create_dt       timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP
 );
 
 CREATE INDEX idx_sj_retry_dead_letter_01 ON sj_retry_dead_letter (namespace_id, group_name, scene_name);
@@ -161,6 +162,7 @@ COMMENT ON COLUMN sj_retry_dead_letter.scene_id IS '场景ID';
 COMMENT ON COLUMN sj_retry_dead_letter.idempotent_id IS '幂等id';
 COMMENT ON COLUMN sj_retry_dead_letter.biz_no IS '业务编号';
 COMMENT ON COLUMN sj_retry_dead_letter.executor_name IS '执行器名称';
+COMMENT ON COLUMN sj_retry_dead_letter.serializer_name IS '执行方法参数序列化器名称';
 COMMENT ON COLUMN sj_retry_dead_letter.args_str IS '执行方法参数';
 COMMENT ON COLUMN sj_retry_dead_letter.ext_attrs IS '扩展字段';
 COMMENT ON COLUMN sj_retry_dead_letter.create_dt IS '创建时间';
@@ -180,6 +182,7 @@ CREATE TABLE sj_retry
     executor_name   varchar(512) NOT NULL DEFAULT '',
     args_str        text         NOT NULL,
     ext_attrs       text         NOT NULL,
+    serializer_name varchar(32)  NOT NULL DEFAULT 'jackson',
     next_trigger_at bigint       NOT NULL,
     retry_count     int          NOT NULL DEFAULT 0,
     retry_status    smallint     NOT NULL DEFAULT 0,
@@ -194,11 +197,10 @@ CREATE TABLE sj_retry
 CREATE UNIQUE INDEX uk_sj_retry_01 ON sj_retry (scene_id, task_type, idempotent_id, deleted);
 
 CREATE INDEX idx_sj_retry_01 ON sj_retry (biz_no);
-CREATE INDEX idx_sj_retry_02 ON sj_retry (retry_status, bucket_index);
-CREATE INDEX idx_sj_retry_03 ON sj_retry (parent_id);
-CREATE INDEX idx_sj_retry_04 ON sj_retry (create_dt);
-CREATE INDEX idx_sj_retry_05 ON sj_retry (idempotent_id);
-
+CREATE INDEX idx_sj_retry_02 ON sj_retry (idempotent_id);
+CREATE INDEX idx_sj_retry_03 ON sj_retry (retry_status, bucket_index);
+CREATE INDEX idx_sj_retry_04 ON sj_retry (parent_id);
+CREATE INDEX idx_sj_retry_05 ON sj_retry (create_dt);
 
 COMMENT ON COLUMN sj_retry.id IS '主键';
 COMMENT ON COLUMN sj_retry.namespace_id IS '命名空间id';
@@ -211,6 +213,7 @@ COMMENT ON COLUMN sj_retry.biz_no IS '业务编号';
 COMMENT ON COLUMN sj_retry.executor_name IS '执行器名称';
 COMMENT ON COLUMN sj_retry.args_str IS '执行方法参数';
 COMMENT ON COLUMN sj_retry.ext_attrs IS '扩展字段';
+COMMENT ON COLUMN sj_retry.serializer_name IS '执行方法参数序列化器名称';
 COMMENT ON COLUMN sj_retry.next_trigger_at IS '下次触发时间';
 COMMENT ON COLUMN sj_retry.retry_count IS '重试次数';
 COMMENT ON COLUMN sj_retry.retry_status IS '重试状态 0、重试中 1、成功 2、最大重试次数';
@@ -306,6 +309,8 @@ CREATE TABLE sj_retry_scene_config
     cb_trigger_type     smallint     NOT NULL DEFAULT 1,
     cb_max_count        int          NOT NULL DEFAULT 16,
     cb_trigger_interval varchar(16)  NOT NULL DEFAULT '',
+    owner_id            bigint       NULL     DEFAULT NULL,
+    labels              varchar(512) NULL     DEFAULT '',
     description         varchar(256) NOT NULL DEFAULT '',
     create_dt           timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP,
     update_dt           timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP
@@ -330,6 +335,8 @@ COMMENT ON COLUMN sj_retry_scene_config.cb_status IS '回调状态 0、不开启
 COMMENT ON COLUMN sj_retry_scene_config.cb_trigger_type IS '1、默认等级 2、固定间隔时间 3、CRON 表达式';
 COMMENT ON COLUMN sj_retry_scene_config.cb_max_count IS '回调的最大执行次数';
 COMMENT ON COLUMN sj_retry_scene_config.cb_trigger_interval IS '回调的最大执行次数';
+COMMENT ON COLUMN sj_retry_scene_config.owner_id IS '负责人id';
+COMMENT ON COLUMN sj_retry_scene_config.labels IS '标签';
 COMMENT ON COLUMN sj_retry_scene_config.description IS '描述';
 COMMENT ON COLUMN sj_retry_scene_config.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_retry_scene_config.update_dt IS '修改时间';
@@ -347,6 +354,7 @@ CREATE TABLE sj_server_node
     expire_at    timestamp    NOT NULL,
     node_type    smallint     NOT NULL,
     ext_attrs    varchar(256) NULL     DEFAULT '',
+    labels       varchar(512) NULL     DEFAULT '',
     create_dt    timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP,
     update_dt    timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP
 );
@@ -365,6 +373,7 @@ COMMENT ON COLUMN sj_server_node.host_port IS '机器端口';
 COMMENT ON COLUMN sj_server_node.expire_at IS '过期时间';
 COMMENT ON COLUMN sj_server_node.node_type IS '节点类型 1、客户端 2、是服务端';
 COMMENT ON COLUMN sj_server_node.ext_attrs IS '扩展字段';
+COMMENT ON COLUMN sj_server_node.labels IS '标签';
 COMMENT ON COLUMN sj_server_node.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_server_node.update_dt IS '修改时间';
 COMMENT ON TABLE sj_server_node IS '服务器节点';
@@ -372,7 +381,7 @@ COMMENT ON TABLE sj_server_node IS '服务器节点';
 -- sj_distributed_lock
 CREATE TABLE sj_distributed_lock
 (
-    name       varchar(64)  NOT NULL,
+    name       varchar(64)  NOT NULL PRIMARY KEY,
     lock_until timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
     locked_at  timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
     locked_by  varchar(255) NOT NULL,
@@ -407,8 +416,8 @@ COMMENT ON COLUMN sj_system_user.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_system_user.update_dt IS '修改时间';
 COMMENT ON TABLE sj_system_user IS '系统用户表';
 
--- pwd: admin
-INSERT INTO sj_system_user VALUES (1, 'admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2, now(), now());
+INSERT INTO sj_system_user (username, password, role)
+VALUES ('admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2);
 
 -- sj_system_user_permission
 CREATE TABLE sj_system_user_permission
@@ -431,27 +440,6 @@ COMMENT ON COLUMN sj_system_user_permission.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_system_user_permission.update_dt IS '修改时间';
 COMMENT ON TABLE sj_system_user_permission IS '系统用户权限表';
 
--- sj_sequence_alloc
-CREATE TABLE sj_sequence_alloc
-(
-    id           bigserial PRIMARY KEY,
-    namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
-    group_name   varchar(64) NOT NULL DEFAULT '',
-    max_id       bigint      NOT NULL DEFAULT 1,
-    step         int         NOT NULL DEFAULT 100,
-    update_dt    timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP
-);
-
-CREATE UNIQUE INDEX uk_sj_sequence_alloc_01 ON sj_sequence_alloc (namespace_id, group_name);
-
-COMMENT ON COLUMN sj_sequence_alloc.id IS '主键';
-COMMENT ON COLUMN sj_sequence_alloc.namespace_id IS '命名空间id';
-COMMENT ON COLUMN sj_sequence_alloc.group_name IS '组名称';
-COMMENT ON COLUMN sj_sequence_alloc.max_id IS '最大id';
-COMMENT ON COLUMN sj_sequence_alloc.step IS '步长';
-COMMENT ON COLUMN sj_sequence_alloc.update_dt IS '更新时间';
-COMMENT ON TABLE sj_sequence_alloc IS '号段模式序号ID分配表';
-
 -- sj_job
 CREATE TABLE sj_job
 (
@@ -477,7 +465,8 @@ CREATE TABLE sj_job
     bucket_index     int          NOT NULL DEFAULT 0,
     resident         smallint     NOT NULL DEFAULT 0,
     notify_ids       varchar(128) NOT NULL DEFAULT '',
-    owner_id         bigint       NULL,
+    owner_id         bigint       NULL     DEFAULT NULL,
+    labels           varchar(512) NULL     DEFAULT '',
     description      varchar(256) NOT NULL DEFAULT '',
     ext_attrs        varchar(256) NULL     DEFAULT '',
     deleted          smallint     NOT NULL DEFAULT 0,
@@ -512,6 +501,7 @@ COMMENT ON COLUMN sj_job.bucket_index IS 'bucket';
 COMMENT ON COLUMN sj_job.resident IS '是否是常驻任务';
 COMMENT ON COLUMN sj_job.notify_ids IS '通知告警场景配置id列表';
 COMMENT ON COLUMN sj_job.owner_id IS '负责人id';
+COMMENT ON COLUMN sj_job.labels IS '标签';
 COMMENT ON COLUMN sj_job.description IS '描述';
 COMMENT ON COLUMN sj_job.ext_attrs IS '扩展字段';
 COMMENT ON COLUMN sj_job.deleted IS '逻辑删除 1、删除';
@@ -519,7 +509,7 @@ COMMENT ON COLUMN sj_job.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_job.update_dt IS '修改时间';
 COMMENT ON TABLE sj_job IS '任务信息';
 
-INSERT INTO sj_job VALUES (1, 'dev', 'ruoyi_group', 'demo-job', null, 1, 1710344035622, 1, 1, 4, 1, 'testJobExecutor', 2, '60', 1, 60, 3, 1, 1, 116, 0, '', 1, '', '', 0, now(), now());
+INSERT INTO sj_job VALUES (1, 'dev', 'ruoyi_group', 'demo-job', null, 1, 1710344035622, 1, 1, 4, 1, 'testJobExecutor', 2, '60', 1, 60, 3, 1, 1, 116, 0, '', 1, '', '', '', 0, now(), now());
 
 -- sj_job_log_message
 CREATE TABLE sj_job_log_message
@@ -740,6 +730,7 @@ CREATE TABLE sj_workflow
     notify_ids       varchar(128) NOT NULL DEFAULT '',
     bucket_index     int          NOT NULL DEFAULT 0,
     version          int          NOT NULL,
+    owner_id         bigint       NULL     DEFAULT NULL,
     ext_attrs        varchar(256) NULL     DEFAULT '',
     deleted          smallint     NOT NULL DEFAULT 0,
     create_dt        timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP,
@@ -765,6 +756,7 @@ COMMENT ON COLUMN sj_workflow.wf_context IS '上下文';
 COMMENT ON COLUMN sj_workflow.notify_ids IS '通知告警场景配置id列表';
 COMMENT ON COLUMN sj_workflow.bucket_index IS 'bucket';
 COMMENT ON COLUMN sj_workflow.version IS '版本号';
+COMMENT ON COLUMN sj_workflow.owner_id IS '负责人id';
 COMMENT ON COLUMN sj_workflow.ext_attrs IS '扩展字段';
 COMMENT ON COLUMN sj_workflow.deleted IS '逻辑删除 1、删除';
 COMMENT ON COLUMN sj_workflow.create_dt IS '创建时间';
@@ -853,3 +845,27 @@ COMMENT ON COLUMN sj_workflow_task_batch.deleted IS '逻辑删除 1、删除';
 COMMENT ON COLUMN sj_workflow_task_batch.create_dt IS '创建时间';
 COMMENT ON COLUMN sj_workflow_task_batch.update_dt IS '修改时间';
 COMMENT ON TABLE sj_workflow_task_batch IS '工作流批次';
+
+-- sj_job_executor
+CREATE TABLE sj_job_executor
+(
+    id            bigserial PRIMARY KEY,
+    namespace_id  varchar(64)  NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
+    group_name    varchar(64)  NOT NULL,
+    executor_info varchar(256) NOT NULL,
+    executor_type varchar(3)   NOT NULL,
+    create_dt     timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP,
+    update_dt     timestamp    NOT NULL DEFAULT CURRENT_TIMESTAMP
+);
+
+CREATE INDEX idx_sj_job_executor_01 ON sj_job_executor (namespace_id, group_name);
+CREATE INDEX idx_sj_job_executor_02 ON sj_job_executor (create_dt);
+
+COMMENT ON COLUMN sj_job_executor.id IS '主键';
+COMMENT ON COLUMN sj_job_executor.namespace_id IS '命名空间id';
+COMMENT ON COLUMN sj_job_executor.group_name IS '组名称';
+COMMENT ON COLUMN sj_job_executor.executor_info IS '任务执行器名称';
+COMMENT ON COLUMN sj_job_executor.executor_type IS '1:java 2:python 3:go';
+COMMENT ON COLUMN sj_job_executor.create_dt IS '创建时间';
+COMMENT ON COLUMN sj_job_executor.update_dt IS '修改时间';
+COMMENT ON TABLE sj_job_executor IS '任务执行器信息';

+ 40 - 28
script/sql/ry-job.sql

@@ -81,18 +81,20 @@ CREATE TABLE `sj_notify_recipient`
 
 CREATE TABLE `sj_retry_dead_letter`
 (
-    `id`            bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
-    `namespace_id`  varchar(64)         NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
-    `group_name`    varchar(64)         NOT NULL COMMENT '组名称',
-    `group_id`      bigint(20)          NOT NULL COMMENT '组Id',
-    `scene_name`    varchar(64)         NOT NULL COMMENT '场景名称',
-    `scene_id`      bigint(20)          NOT NULL COMMENT '场景ID',
-    `idempotent_id` varchar(64)         NOT NULL COMMENT '幂等id',
-    `biz_no`        varchar(64)         NOT NULL DEFAULT '' COMMENT '业务编号',
-    `executor_name` varchar(512)        NOT NULL DEFAULT '' COMMENT '执行器名称',
-    `args_str`      text                NOT NULL COMMENT '执行方法参数',
-    `ext_attrs`     text                NOT NULL COMMENT '扩展字段',
-    `create_dt`     datetime            NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `id`              bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+    `namespace_id`    varchar(64)         NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
+    `group_name`      varchar(64)         NOT NULL COMMENT '组名称',
+    `group_id`        bigint(20)          NOT NULL COMMENT '组Id',
+    `scene_name`      varchar(64)         NOT NULL COMMENT '场景名称',
+    `scene_id`        bigint(20)          NOT NULL COMMENT '场景ID',
+    `idempotent_id`   varchar(64)         NOT NULL COMMENT '幂等id',
+    `biz_no`          varchar(64)         NOT NULL DEFAULT '' COMMENT '业务编号',
+    `executor_name`   varchar(512)        NOT NULL DEFAULT '' COMMENT '执行器名称',
+    -- jackson 兼容历史数据 预计1.8.0默认改为fury
+    `serializer_name` varchar(32)         NOT NULL DEFAULT 'jackson' COMMENT '执行方法参数序列化器名称',
+    `args_str`        text                NOT NULL COMMENT '执行方法参数',
+    `ext_attrs`       text                NOT NULL COMMENT '扩展字段',
+    `create_dt`       datetime            NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
     PRIMARY KEY (`id`),
     KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`),
     KEY `idx_idempotent_id` (`idempotent_id`),
@@ -115,6 +117,8 @@ CREATE TABLE `sj_retry`
     `executor_name`   varchar(512)        NOT NULL DEFAULT '' COMMENT '执行器名称',
     `args_str`        text                NOT NULL COMMENT '执行方法参数',
     `ext_attrs`       text                NOT NULL COMMENT '扩展字段',
+    -- jackson 兼容历史数据 预计1.8.0默认改为fury
+    `serializer_name` varchar(32)         NOT NULL DEFAULT 'jackson' COMMENT '执行方法参数序列化器名称',
     `next_trigger_at` bigint(13)          NOT NULL COMMENT '下次触发时间',
     `retry_count`     int(11)             NOT NULL DEFAULT 0 COMMENT '重试次数',
     `retry_status`    tinyint(4)          NOT NULL DEFAULT 0 COMMENT '重试状态 0、重试中 1、成功 2、最大重试次数',
@@ -195,6 +199,8 @@ CREATE TABLE `sj_retry_scene_config`
     `cb_trigger_type`     tinyint(4)          NOT NULL DEFAULT 1 COMMENT '1、默认等级 2、固定间隔时间 3、CRON 表达式',
     `cb_max_count`        int(11)             NOT NULL DEFAULT 16 COMMENT '回调的最大执行次数',
     `cb_trigger_interval` varchar(16)         NOT NULL DEFAULT '' COMMENT '回调的最大执行次数',
+    `owner_id`            bigint(20)          NULL     DEFAULT NULL COMMENT '负责人id',
+    `labels`              varchar(512)        NULL     DEFAULT '' COMMENT '标签',
     `description`         varchar(256)        NOT NULL DEFAULT '' COMMENT '描述',
     `create_dt`           datetime            NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
     `update_dt`           datetime            NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
@@ -215,6 +221,7 @@ CREATE TABLE `sj_server_node`
     `expire_at`    datetime            NOT NULL COMMENT '过期时间',
     `node_type`    tinyint(4)          NOT NULL COMMENT '节点类型 1、客户端 2、是服务端',
     `ext_attrs`    varchar(256)        NULL     DEFAULT '' COMMENT '扩展字段',
+    `labels`       varchar(512)        NULL     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`),
@@ -268,19 +275,6 @@ CREATE TABLE `sj_system_user_permission`
 ) ENGINE = InnoDB
   DEFAULT CHARSET = utf8mb4 COMMENT ='系统用户权限表';
 
-CREATE TABLE `sj_sequence_alloc`
-(
-    `id`           bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
-    `namespace_id` varchar(64)         NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
-    `group_name`   varchar(64)         NOT NULL DEFAULT '' COMMENT '组名称',
-    `max_id`       bigint(20)          NOT NULL DEFAULT 1 COMMENT '最大id',
-    `step`         int(11)             NOT NULL DEFAULT 100 COMMENT '步长',
-    `update_dt`    datetime            NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
-    PRIMARY KEY (`id`),
-    UNIQUE KEY `uk_namespace_id_group_name` (`namespace_id`, `group_name`)
-) ENGINE = InnoDB
-  DEFAULT CHARSET = utf8mb4 COMMENT ='号段模式序号ID分配表';
-
 -- 分布式调度DDL
 CREATE TABLE `sj_job`
 (
@@ -306,7 +300,8 @@ CREATE TABLE `sj_job`
     `bucket_index`     int(11)             NOT NULL DEFAULT 0 COMMENT 'bucket',
     `resident`         tinyint(4)          NOT NULL DEFAULT 0 COMMENT '是否是常驻任务',
     `notify_ids`       varchar(128)        NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表',
-    `owner_id`         bigint(20)          NULL                 COMMENT '负责人id',
+    `owner_id`         bigint(20)          NULL     DEFAULT NULL COMMENT '负责人id',
+    `labels`           varchar(512)        NULL     DEFAULT '' COMMENT '标签',
     `description`      varchar(256)        NOT NULL DEFAULT '' COMMENT '描述',
     `ext_attrs`        varchar(256)        NULL     DEFAULT '' COMMENT '扩展字段',
     `deleted`          tinyint(4)          NOT NULL DEFAULT 0 COMMENT '逻辑删除 1、删除',
@@ -320,7 +315,7 @@ CREATE TABLE `sj_job`
   AUTO_INCREMENT = 0
   DEFAULT CHARSET = utf8mb4 COMMENT ='任务信息';
 
-INSERT INTO `sj_job` VALUES (1, 'dev', 'ruoyi_group', 'demo-job', null, 1, 1710344035622, 1, 1, 4, 1, 'testJobExecutor', 2, '60', 1, 60, 3, 1, 1, 116, 0, '', 1, '', '', 0 , now(), now());
+INSERT INTO `sj_job` VALUES (1, 'dev', 'ruoyi_group', 'demo-job', null, 1, 1710344035622, 1, 1, 4, 1, 'testJobExecutor', 2, '60', 1, 60, 3, 1, 1, 116, 0, '', 1, '','', '', 0 , now(), now());
 
 CREATE TABLE `sj_job_log_message`
 (
@@ -461,6 +456,7 @@ CREATE TABLE `sj_workflow`
     `notify_ids`       varchar(128)        NOT NULL DEFAULT '' COMMENT '通知告警场景配置id列表',
     `bucket_index`     int(11)             NOT NULL DEFAULT 0 COMMENT 'bucket',
     `version`          int(11)             NOT NULL COMMENT '版本号',
+    `owner_id`         bigint(20)          NULL     DEFAULT NULL COMMENT '负责人id',
     `ext_attrs`        varchar(256)        NULL     DEFAULT '' COMMENT '扩展字段',
     `deleted`          tinyint(4)          NOT NULL DEFAULT 0 COMMENT '逻辑删除 1、删除',
     `create_dt`        datetime            NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
@@ -510,7 +506,7 @@ CREATE TABLE `sj_workflow_task_batch`
     `wf_context`        text                         DEFAULT NULL COMMENT '全局上下文',
     `execution_at`      bigint(13)          NOT NULL DEFAULT 0 COMMENT '任务执行时间',
     `ext_attrs`         varchar(256)        NULL     DEFAULT '' COMMENT '扩展字段',
-    `version`           int(11)              NOT NULL DEFAULT 1 COMMENT '版本号',
+    `version`           int(11)             NOT NULL DEFAULT 1 COMMENT '版本号',
     `deleted`           tinyint(4)          NOT NULL DEFAULT 0 COMMENT '逻辑删除 1、删除',
     `create_dt`         datetime            NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
     `update_dt`         datetime            NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
@@ -521,3 +517,19 @@ CREATE TABLE `sj_workflow_task_batch`
 ) ENGINE = InnoDB
   AUTO_INCREMENT = 0
   DEFAULT CHARSET = utf8mb4 COMMENT ='工作流批次';
+
+CREATE TABLE `sj_job_executor`
+(
+    `id`            bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
+    `namespace_id`  varchar(64)         NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
+    `group_name`    varchar(64)         NOT NULL COMMENT '组名称',
+    `executor_info` varchar(256)        NOT NULL COMMENT '任务执行器名称',
+    `executor_type` varchar(3)          NOT NULL COMMENT '1:java 2:python 3:go',
+    `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_group_name` (`namespace_id`, `group_name`),
+    KEY `idx_create_dt` (`create_dt`)
+) ENGINE = InnoDB
+  AUTO_INCREMENT = 0
+  DEFAULT CHARSET = utf8mb4 COMMENT ='任务执行器信息';