diff --git a/pom.xml b/pom.xml index 3eeb91ec..be42b048 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ 5.8.38 3.50.0 2.2.7 - 1.5.0 + 1.6.0 1.44.0 1.18.36 7.4 diff --git a/script/config/nacos/ruoyi-snailjob-server.yml b/script/config/nacos/ruoyi-snailjob-server.yml index 51357506..23fdc95a 100644 --- a/script/config/nacos/ruoyi-snailjob-server.yml +++ b/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 diff --git a/script/sql/oracle/oracle_ry_job.sql b/script/sql/oracle/oracle_ry_job.sql index 1e5c899c..84d31ec0 100644 --- a/script/sql/oracle/oracle_ry_job.sql +++ b/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 '任务执行器信息'; diff --git a/script/sql/postgres/postgres_ry_job.sql b/script/sql/postgres/postgres_ry_job.sql index 10612e65..8cd32a85 100644 --- a/script/sql/postgres/postgres_ry_job.sql +++ b/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 '任务执行器信息'; diff --git a/script/sql/ry-job.sql b/script/sql/ry-job.sql index dd86deb4..1e75571d 100644 --- a/script/sql/ry-job.sql +++ b/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 ='任务执行器信息';