remove 移除 powerjob

dev
疯狂的狮子Li 2 years ago
parent 56b434603e
commit b1a087101d

@ -28,22 +28,6 @@
<artifactId>spring-cloud-commons</artifactId>
</dependency>
<!--PowerJob-->
<dependency>
<groupId>tech.powerjob</groupId>
<artifactId>powerjob-worker</artifactId>
<exclusions>
<exclusion>
<artifactId>powerjob-remote-impl-akka</artifactId>
<groupId>tech.powerjob</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>tech.powerjob</groupId>
<artifactId>powerjob-official-processors</artifactId>
</dependency>
<!-- EasyRetry Client -->
<dependency>
<groupId>com.aizuda</groupId>

@ -1,107 +0,0 @@
package org.dromara.common.job.config;
import cn.hutool.core.collection.CollUtil;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.job.config.properties.PowerJobProperties;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.context.annotation.Bean;
import tech.powerjob.common.utils.CommonUtils;
import tech.powerjob.common.utils.NetUtils;
import tech.powerjob.worker.PowerJobSpringWorker;
import tech.powerjob.worker.common.PowerJobWorkerConfig;
import java.util.Arrays;
import java.util.List;
/**
* Autoconfiguration class for PowerJob-worker.
*
* @author songyinyin
* @since 2020/7/26 16:37
*/
@AutoConfiguration
@EnableConfigurationProperties(PowerJobProperties.class)
@ConditionalOnProperty(prefix = "powerjob.worker", name = "enabled", havingValue = "true", matchIfMissing = true)
public class PowerJobConfig{
@Bean
public PowerJobSpringWorker initPowerJob(PowerJobProperties properties, DiscoveryClient discoveryClient) {
PowerJobProperties.Worker worker = properties.getWorker();
/*
* Address of PowerJob-server node(s). Do not mistake for ActorSystem port. Do not add
* any prefix, i.e. http://.
*/
List<String> serverAddress;
if (StringUtils.isNotBlank(worker.getServerName())) {
List<ServiceInstance> instances = discoveryClient.getInstances(worker.getServerName());
if (CollUtil.isEmpty(instances)) {
throw new RuntimeException("调度中心不存在!");
}
serverAddress = StreamUtils.toList(instances, instance ->
String.format("%s:%s", instance.getHost(), instance.getPort()));
} else {
CommonUtils.requireNonNull(worker.getServerAddress(), "serverAddress can't be empty! " +
"if you don't want to enable powerjob, please config program arguments: powerjob.worker.enabled=false");
serverAddress = Arrays.asList(worker.getServerAddress().split(","));
}
/*
* Create OhMyConfig object for setting properties.
*/
PowerJobWorkerConfig config = new PowerJobWorkerConfig();
/*
* Configuration of worker port. Random port is enabled when port is set with non-positive number.
*/
if (worker.getPort() != null) {
config.setPort(worker.getPort());
} else {
int port = worker.getPort();
if (port <= 0) {
port = NetUtils.getRandomPort();
}
config.setPort(port);
}
/*
* appName, name of the application. Applications should be registered in advance to prevent
* error. This property should be the same with what you entered for appName when getting
* registered.
*/
config.setAppName(worker.getAppName());
config.setServerAddress(serverAddress);
config.setProtocol(worker.getProtocol());
/*
* For non-Map/MapReduce tasks, {@code memory} is recommended for speeding up calculation.
* Map/MapReduce tasks may produce batches of subtasks, which could lead to OutOfMemory
* exception or error, {@code disk} should be applied.
*/
config.setStoreStrategy(worker.getStoreStrategy());
/*
* When enabledTestMode is set as true, PowerJob-worker no longer connects to PowerJob-server
* or validate appName.
*/
config.setAllowLazyConnectServer(worker.isAllowLazyConnectServer());
/*
* Max length of appended workflow context . Appended workflow context value that is longer than the value will be ignored.
*/
config.setMaxAppendedWfContextLength(worker.getMaxAppendedWfContextLength());
config.setTag(worker.getTag());
config.setMaxHeavyweightTaskNum(worker.getMaxHeavyweightTaskNum());
config.setMaxLightweightTaskNum(worker.getMaxLightweightTaskNum());
config.setHealthReportInterval(worker.getHealthReportInterval());
/*
* Create PowerJobSpringWorker object and set properties.
*/
return new PowerJobSpringWorker(config);
}
}

@ -1,109 +0,0 @@
package org.dromara.common.job.config.properties;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import tech.powerjob.common.RemoteConstant;
import tech.powerjob.common.enums.Protocol;
import tech.powerjob.worker.common.constants.StoreStrategy;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.WorkflowContext;
/**
* PowerJob properties configuration class.
*
* @author songyinyin
* @since 2020/7/26 16:37
*/
@ConfigurationProperties(prefix = "powerjob")
public class PowerJobProperties {
private final Worker worker = new Worker();
public Worker getWorker() {
return worker;
}
/**
* Powerjob worker configuration properties.
*/
@Setter
@Getter
public static class Worker {
/**
* Whether to enable PowerJob Worker
*/
private boolean enabled = true;
/**
* Name of application, String type. Total length of this property should be no more than 255
* characters. This is one of the required properties when registering a new application. This
* property should be assigned with the same value as what you entered for the appName.
*/
private String appName;
/**
* Akka port of Powerjob-worker, optional value. Default value of this property is 27777.
* If multiple PowerJob-worker nodes were deployed, different, unique ports should be assigned.
* Deprecated, please use 'port'
*/
@Deprecated
private int akkaPort = RemoteConstant.DEFAULT_WORKER_PORT;
/**
* port
*/
private Integer port;
/**
* Address(es) of Powerjob-server node(s). Ip:port or domain.
* Example of single Powerjob-server node:
* <p>
* 127.0.0.1:7700
* </p>
* Example of Powerjob-server cluster:
* <p>
* 192.168.0.10:7700,192.168.0.11:7700,192.168.0.12:7700
* </p>
*/
private String serverAddress;
private String serverName;
/**
* Protocol for communication between WORKER and server
*/
private Protocol protocol = Protocol.AKKA;
/**
* Local store strategy for H2 database. {@code disk} or {@code memory}.
*/
private StoreStrategy storeStrategy = StoreStrategy.DISK;
/**
* Max length of response result. Result that is longer than the value will be truncated.
* {@link ProcessResult} max length for #msg
*/
private int maxResultLength = 8192;
/**
* If allowLazyConnectServer is set as true, PowerJob worker allows launching without a direct connection to the server.
* allowLazyConnectServer is used for conditions that your have no powerjob-server in your develop env so you can't startup the application
*/
private boolean allowLazyConnectServer = false;
/**
* Max length of appended workflow context value length. Appended workflow context value that is longer than the value will be ignored.
* {@link WorkflowContext} max length for #appendedContextData
*/
private int maxAppendedWfContextLength = 8192;
private String tag;
/**
* Max numbers of LightTaskTacker
*/
private Integer maxLightweightTaskNum = 1024;
/**
* Max numbers of HeavyTaskTacker
*/
private Integer maxHeavyweightTaskNum = 64;
/**
* Interval(s) of worker health report
*/
private Integer healthReportInterval = 10;
}
}

@ -1,2 +1 @@
org.dromara.common.job.config.PowerJobConfig
org.dromara.common.job.config.EasyRetryConfig

@ -1,56 +0,0 @@
package org.dromara.job.processors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import tech.powerjob.common.utils.NetUtils;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.TaskResult;
import tech.powerjob.worker.core.processor.sdk.BroadcastProcessor;
import tech.powerjob.worker.log.OmsLogger;
import java.util.List;
/**
* 广
*
* @author tjq
* @since 2020/4/17
*/
@Slf4j
@Component
public class BroadcastProcessorDemo implements BroadcastProcessor {
@Override
public ProcessResult preProcess(TaskContext context) {
System.out.println("===== BroadcastProcessorDemo#preProcess ======");
context.getOmsLogger().info("BroadcastProcessorDemo#preProcess, current host: {}", NetUtils.getLocalHost());
if ("rootFailed".equals(context.getJobParams())) {
return new ProcessResult(false, "console need failed");
} else {
return new ProcessResult(true);
}
}
@Override
public ProcessResult process(TaskContext taskContext) throws Exception {
OmsLogger logger = taskContext.getOmsLogger();
System.out.println("===== BroadcastProcessorDemo#process ======");
logger.info("BroadcastProcessorDemo#process, current host: {}", NetUtils.getLocalHost());
long sleepTime = 1000;
try {
sleepTime = Long.parseLong(taskContext.getJobParams());
} catch (Exception e) {
logger.warn("[BroadcastProcessor] parse sleep time failed!", e);
}
Thread.sleep(Math.max(sleepTime, 1000));
return new ProcessResult(true);
}
@Override
public ProcessResult postProcess(TaskContext context, List<TaskResult> taskResults) {
System.out.println("===== BroadcastProcessorDemo#postProcess ======");
context.getOmsLogger().info("BroadcastProcessorDemo#postProcess, current host: {}, taskResult: {}", NetUtils.getLocalHost(), taskResults);
return new ProcessResult(true, "success");
}
}

@ -1,41 +0,0 @@
package org.dromara.job.processors;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component;
import tech.powerjob.official.processors.util.CommonUtils;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
import tech.powerjob.worker.log.OmsLogger;
import java.util.Date;
import java.util.Optional;
/**
* LogTestProcessor
*
* @author tjq
* @since 2022/9/18
*/
@Component
public class LogTestProcessor implements BasicProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
final OmsLogger omsLogger = context.getOmsLogger();
final String parseParams = CommonUtils.parseParams(context);
final JSONObject config = Optional.ofNullable(JSONObject.parseObject(parseParams)).orElse(new JSONObject());
final long loopTimes = Optional.ofNullable(config.getLong("loopTimes")).orElse(1000L);
for (int i = 0; i < loopTimes; i++) {
omsLogger.debug("[DEBUG] one DEBUG log in {}", new Date());
omsLogger.info("[INFO] one INFO log in {}", new Date());
omsLogger.warn("[WARN] one WARN log in {}", new Date());
omsLogger.error("[ERROR] one ERROR log in {}", new Date());
}
return new ProcessResult(true);
}
}

@ -1,93 +0,0 @@
package org.dromara.job.processors;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import org.dromara.common.json.utils.JsonUtils;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.MapProcessor;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
/**
* Map
*
* @author tjq
* @since 2020/4/18
*/
@Component
public class MapProcessorDemo implements MapProcessor {
/**
*
*/
private static final int BATCH_SIZE = 100;
/**
*
*/
private static final int BATCH_NUM = 5;
@Override
public ProcessResult process(TaskContext context) throws Exception {
log.info("============== MapProcessorDemo#process ==============");
log.info("isRootTask:{}", isRootTask());
log.info("taskContext:{}", JsonUtils.toJsonString(context));
if (isRootTask()) {
log.info("==== MAP ====");
List<SubTask> subTasks = Lists.newLinkedList();
for (int j = 0; j < BATCH_NUM; j++) {
SubTask subTask = new SubTask();
subTask.siteId = j;
subTask.itemIds = Lists.newLinkedList();
subTasks.add(subTask);
for (int i = 0; i < BATCH_SIZE; i++) {
subTask.itemIds.add(i + j * 100);
}
}
map(subTasks, "MAP_TEST_TASK");
return new ProcessResult(true, "map successfully");
} else {
log.info("==== PROCESS ====");
SubTask subTask = (SubTask) context.getSubTask();
for (Integer itemId : subTask.getItemIds()) {
if (Thread.interrupted()) {
// 任务被中断
log.info("job has been stop! so stop to process subTask: {} => {}", subTask.getSiteId(), itemId);
break;
}
log.info("processing subTask: {} => {}", subTask.getSiteId(), itemId);
int max = Integer.MAX_VALUE >> 7;
for (int i = 0; ; i++) {
// 模拟耗时操作
if (i > max) {
break;
}
}
}
// 测试在 Map 任务中追加上下文
context.getWorkflowContext().appendData2WfContext("Yasuo", "A sword's poor company for a long road.");
boolean b = ThreadLocalRandom.current().nextBoolean();
if (context.getCurrentRetryTimes() >= 1) {
// 重试的话一定会成功
b = true;
}
return new ProcessResult(b, "RESULT:" + b);
}
}
@Getter
@NoArgsConstructor
@AllArgsConstructor
public static class SubTask {
private Integer siteId;
private List<Integer> itemIds;
}
}

@ -1,93 +0,0 @@
package org.dromara.job.processors;
import cn.hutool.core.lang.Dict;
import com.google.common.collect.Lists;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.json.utils.JsonUtils;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.TaskResult;
import tech.powerjob.worker.core.processor.sdk.MapReduceProcessor;
import tech.powerjob.worker.log.OmsLogger;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
/**
* MapReduce
* {"batchSize": 100, "batchNum": 2}
*
* @author tjq
* @since 2020/4/17
*/
@Slf4j
@Component
public class MapReduceProcessorDemo implements MapReduceProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
OmsLogger omsLogger = context.getOmsLogger();
log.info("============== TestMapReduceProcessor#process ==============");
log.info("isRootTask:{}", isRootTask());
log.info("taskContext:{}", JsonUtils.toJsonString(context));
// 根据控制台参数获取MR批次及子任务大小
final Dict jobParams = JsonUtils.parseMap(context.getJobParams());
Integer batchSize = (Integer) jobParams.getOrDefault("batchSize", 100);
Integer batchNum = (Integer) jobParams.getOrDefault("batchNum", 10);
if (isRootTask()) {
log.info("==== MAP ====");
omsLogger.info("[DemoMRProcessor] start root task~");
List<TestSubTask> subTasks = Lists.newLinkedList();
for (int j = 0; j < batchNum; j++) {
for (int i = 0; i < batchSize; i++) {
int x = j * batchSize + i;
subTasks.add(new TestSubTask("name" + x, x));
}
map(subTasks, "MAP_TEST_TASK");
subTasks.clear();
}
omsLogger.info("[DemoMRProcessor] map success~");
return new ProcessResult(true, "MAP_SUCCESS");
} else {
log.info("==== NORMAL_PROCESS ====");
omsLogger.info("[DemoMRProcessor] process subTask: {}.", JsonUtils.toJsonString(context.getSubTask()));
log.info("subTask: {}", JsonUtils.toJsonString(context.getSubTask()));
Thread.sleep(1000);
if (context.getCurrentRetryTimes() == 0) {
return new ProcessResult(false, "FIRST_FAILED");
} else {
return new ProcessResult(true, "PROCESS_SUCCESS");
}
}
}
@Override
public ProcessResult reduce(TaskContext context, List<TaskResult> taskResults) {
log.info("================ MapReduceProcessorDemo#reduce ================");
log.info("TaskContext: {}", JsonUtils.toJsonString(context));
log.info("List<TaskResult>: {}", JsonUtils.toJsonString(taskResults));
context.getOmsLogger().info("MapReduce job finished, result is {}.", taskResults);
boolean success = ThreadLocalRandom.current().nextBoolean();
return new ProcessResult(success, context + ": " + success);
}
@Getter
@ToString
@NoArgsConstructor
@AllArgsConstructor
public static class TestSubTask {
private String name;
private int age;
}
}

@ -1,35 +0,0 @@
package org.dromara.job.processors;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
import tech.powerjob.worker.log.OmsLogger;
import java.util.Optional;
/**
* @author Echo009
* @since 2022/4/27
*/
@Component
public class SimpleProcessor implements BasicProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
OmsLogger logger = context.getOmsLogger();
String jobParams = Optional.ofNullable(context.getJobParams()).orElse("S");
logger.info("Current context:{}", context.getWorkflowContext());
logger.info("Current job params:{}", jobParams);
// 测试中文问题 #581
if (jobParams.contains("CN")) {
return new ProcessResult(true, "任务成功啦!!!");
}
return jobParams.contains("F") ? new ProcessResult(false) : new ProcessResult(true, "yeah!");
}
}

@ -1,51 +0,0 @@
package org.dromara.job.processors;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
import tech.powerjob.worker.log.OmsLogger;
import java.util.Collections;
/**
*
*
* @author tjq
* @since 2020/4/17
*/
@Slf4j
@Component
public class StandaloneProcessorDemo implements BasicProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
OmsLogger omsLogger = context.getOmsLogger();
omsLogger.info("StandaloneProcessorDemo start process,context is {}.", context);
omsLogger.info("Notice! If you want this job process failed, your jobParams need to be 'failed'");
omsLogger.info("Let's test the exception~");
// 测试异常日志
try {
Collections.emptyList().add("277");
} catch (Exception e) {
omsLogger.error("oh~it seems that we have an exception~", e);
}
log.info("================ StandaloneProcessorDemo#process ================");
log.info("jobParam:{}", context.getJobParams());
log.info("instanceParams:{}", context.getInstanceParams());
String param;
// 解析参数,非处于工作流中时,优先取实例参数(允许动态[instanceParams]覆盖静态参数[jobParams]
if (context.getWorkflowContext() == null) {
param = StringUtils.isBlank(context.getInstanceParams()) ? context.getJobParams() : context.getInstanceParams();
} else {
param = context.getJobParams();
}
// 根据参数判断是否成功
boolean success = !"failed".equals(param);
omsLogger.info("StandaloneProcessorDemo finished process,success: {}", success);
omsLogger.info("anyway, we finished the job successfully~Congratulations!");
return new ProcessResult(success, context + ": " + success);
}
}

@ -1,25 +0,0 @@
package org.dromara.job.processors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
/**
*
*
* @author tjq
* @since 2020/4/20
*/
@Component
@Slf4j
public class TimeoutProcessor implements BasicProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
long sleepTime = Long.parseLong(context.getJobParams());
log.info("TaskInstance({}) will sleep {} ms", context.getInstanceId(), sleepTime);
Thread.sleep(Long.parseLong(context.getJobParams()));
return new ProcessResult(true, "impossible~~~~QAQ~");
}
}

@ -1,36 +0,0 @@
package org.dromara.job.workflow;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
import tech.powerjob.worker.log.OmsLogger;
import java.util.Map;
/**
*
*
* @author tjq
* @since 2020/6/2
*/
@Component
@Slf4j
public class WorkflowStandaloneProcessor implements BasicProcessor {
@Override
public ProcessResult process(TaskContext context) throws Exception {
OmsLogger logger = context.getOmsLogger();
logger.info("current jobParams: {}", context.getJobParams());
logger.info("current context: {}", context.getWorkflowContext());
log.info("jobParams:{}", context.getJobParams());
log.info("currentContext:{}", JSON.toJSONString(context));
// 尝试获取上游任务
Map<String, String> workflowContext = context.getWorkflowContext().fetchWorkflowContext();
log.info("工作流上下文数据:{}", workflowContext);
return new ProcessResult(true, context.getJobId() + " process successfully.");
}
}

@ -13,7 +13,6 @@
<module>ruoyi-sentinel-dashboard</module>
<module>ruoyi-seata-server</module>
<module>ruoyi-nacos</module>
<module>ruoyi-powerjob-server</module>
<module>ruoyi-easyretry-server</module>
</modules>

@ -1,17 +0,0 @@
#FROM findepi/graalvm:java17-native
FROM openjdk:17.0.2-oraclelinux8
MAINTAINER Lion Li
RUN mkdir -p /ruoyi/powerjob/logs
WORKDIR /ruoyi/powerjob
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS="-Xms512m -Xmx1024m"
EXPOSE 7700
ADD ./target/ruoyi-powerjob-server.jar ./app.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar app.jar \
-XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS}

@ -1,82 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-visual</artifactId>
<version>${revision}</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>ruoyi-powerjob-server</artifactId>
<properties>
<spring-boot.version>2.7.18</spring-boot.version>
<spring-cloud.version>2021.0.7</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- PowerJob server-->
<dependency>
<groupId>tech.powerjob</groupId>
<artifactId>powerjob-server-starter</artifactId>
<version>${powerjob.version}</version>
</dependency>
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-nacos</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

@ -1,25 +0,0 @@
package org.dromara.powerjob;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
import tech.powerjob.server.common.utils.PropertyUtils;
/**
* powerjob
*
* @author yhan219
*/
@Slf4j
@EnableScheduling
@SpringBootApplication(scanBasePackages = "tech.powerjob.server")
public class PowerJobServerApplication {
public static void main(String[] args) {
PropertyUtils.init();
SpringApplication.run(tech.powerjob.server.PowerJobServerApplication.class, args);
log.info("文档地址: https://www.yuque.com/powerjob/guidence/problem");
}
}

@ -1,43 +0,0 @@
# Http server port
server.port=7700
spring.profiles.active=@profiles.active@
spring.main.banner-mode=log
spring.jpa.open-in-view=false
spring.data.mongodb.repositories.type=none
logging.level.org.mongodb=warn
logging.level.tech.powerjob.server=warn
logging.level.MONITOR_LOGGER_DB_OPERATION=warn
logging.level.MONITOR_LOGGER_WORKER_HEART_BEAT=warn
logging.config=classpath:logback-plus.xml
# Configuration for uploading files.
spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=0
spring.servlet.multipart.max-file-size=209715200
spring.servlet.multipart.max-request-size=209715200
###### PowerJob transporter configuration ######
oms.transporter.active.protocols=AKKA,HTTP
oms.transporter.main.protocol=HTTP
oms.akka.port=10086
oms.http.port=10010
# Prefix for all tables. Default empty string. Config if you have needs, i.e. pj_
oms.table-prefix=pj_
spring.application.name=ruoyi-powerjob-server
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=ALWAYS
management.endpoint.logfile.external-file=./logs/ruoyi-powerjob-server.log
management.health.mongo.enabled=${oms.mongodb.enable}
# nacos 配置
spring.cloud.nacos.server-addr=@nacos.server@
spring.cloud.nacos.username=@nacos.username@
spring.cloud.nacos.password=@nacos.password@
spring.cloud.nacos.discovery.group=@nacos.discovery.group@
spring.cloud.nacos.discovery.namespace=${spring.profiles.active}
spring.cloud.nacos.config.group=@nacos.config.group@
spring.cloud.nacos.config.namespace=${spring.profiles.active}
spring.config.import[0]=optional:nacos:datasource.yml
spring.config.import[1]=optional:nacos:${spring.application.name}.properties

@ -1,11 +0,0 @@
Application Version: ${revision}
Spring Boot Version: ${spring-boot.version}
_ _
(_) | |
_ __ _____ _____ _ __ _ ___ | |__ ______ ___ ___ _ ____ _____ _ __
| '_ \ / _ \ \ /\ / / _ \ '__| |/ _ \| '_ \______/ __|/ _ \ '__\ \ / / _ \ '__|
| |_) | (_) \ V V / __/ | | | (_) | |_) | \__ \ __/ | \ V / __/ |
| .__/ \___/ \_/\_/ \___|_| | |\___/|_.__/ |___/\___|_| \_/ \___|_|
| | _/ |
|_| |__/

@ -1,97 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<included>
<property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n"/>
<!-- 控制台输出 -->
<appender name="file_console" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/console.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/console.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大 1天 -->
<maxHistory>1</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
<charset>utf-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
</filter>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- info异步输出 -->
<appender name="async_info" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>512</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="file_info"/>
</appender>
<!-- error异步输出 -->
<appender name="async_error" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>512</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="file_error"/>
</appender>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="async_info"/>
<appender-ref ref="async_error"/>
<appender-ref ref="file_console"/>
</root>
</included>

@ -1,30 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 日志存放路径 -->
<property name="log.path" value="logs/${project.artifactId}"/>
<!-- 日志输出格式 -->
<property name="console.log.pattern"
value="%red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}%n) - %msg%n"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${console.log.pattern}</pattern>
<charset>utf-8</charset>
</encoder>
</appender>
<include resource="logback-common.xml" />
<include resource="logback-logstash.xml" />
<!-- 开启 skywalking 日志收集 -->
<include resource="logback-skylog.xml" />
<!--系统操作日志-->
<root level="info">
<appender-ref ref="console"/>
</root>
</configuration>

@ -1,528 +0,0 @@
SET NAMES utf8mb4;
CREATE TABLE `er_namespace`
(
`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) 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 '修改时间',
`deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1、删除',
PRIMARY KEY (`id`),
KEY `idx_name` (`name`),
UNIQUE KEY `uk_unique_id` (`unique_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='命名空间';
INSERT INTO `er_namespace` VALUES (1, 'Development', 'dev', '', now(), now(), 0);
INSERT INTO `er_namespace` VALUES (2, 'Production', 'prod', '', now(), now(), 0);
CREATE TABLE `er_group_config`
(
`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 '组名称',
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '组描述',
`token` varchar(64) NOT NULL DEFAULT 'ER_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT' COMMENT 'token',
`group_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '组状态 0、未启用 1、启用',
`version` int(11) NOT NULL COMMENT '版本号',
`group_partition` int(11) NOT NULL COMMENT '分区',
`id_generator_mode` tinyint(4) NOT NULL DEFAULT '1' COMMENT '唯一id生成模式 默认号段模式',
`init_scene` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否初始化场景 0:否 1:是',
`bucket_index` int(11) 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_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='组配置'
;
INSERT INTO `er_group_config` VALUES (1, 'dev', 'ruoyi_group', '', 'ER_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, 4, now(), now());
CREATE TABLE `er_notify_config`
(
`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 '组名称',
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
`notify_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知状态 0、未启用 1、启用',
`notify_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知类型 1、钉钉 2、邮件 3、企业微信',
`notify_attribute` varchar(512) NOT NULL COMMENT '配置属性',
`notify_threshold` int(11) NOT NULL DEFAULT '0' COMMENT '通知阈值',
`notify_scene` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知场景',
`rate_limiter_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '限流状态 0、未启用 1、启用',
`rate_limiter_threshold` int(11) NOT NULL DEFAULT '0' 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 '修改时间',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='通知配置'
;
CREATE TABLE `er_retry_dead_letter_0`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' 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 DEFAULT '' COMMENT '执行器名称',
`args_str` text NOT NULL COMMENT '执行方法参数',
`ext_attrs` text NOT NULL COMMENT '扩展字段',
`task_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '任务类型 1、重试数据 2、回调数据',
`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`),
KEY `idx_biz_no` (`biz_no`),
KEY `idx_create_dt` (`create_dt`),
UNIQUE KEY `uk_namespace_id_group_name_unique_id` (`namespace_id`, `group_name`, `unique_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='死信队列表'
;
CREATE TABLE `er_retry_task_0`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' 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 DEFAULT '' COMMENT '执行器名称',
`args_str` text NOT NULL COMMENT '执行方法参数',
`ext_attrs` text NOT NULL COMMENT '扩展字段',
`next_trigger_at` datetime NOT NULL 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`),
KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`),
KEY `idx_namespace_id_group_name_task_type` (`namespace_id`, `group_name`, `task_type`),
KEY `idx_namespace_id_group_name_retry_status` (`namespace_id`, `group_name`, `retry_status`),
KEY `idx_idempotent_id` (`idempotent_id`),
KEY `idx_biz_no` (`biz_no`),
KEY `idx_create_dt` (`create_dt`),
UNIQUE KEY `uk_name_unique_id` (`namespace_id`, `group_name`, `unique_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务表'
;
CREATE TABLE `er_retry_task_log`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' 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 DEFAULT '' COMMENT '执行器名称',
`args_str` text NOT NULL COMMENT '执行方法参数',
`ext_attrs` text NOT NULL 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`),
KEY `idx_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`),
KEY `idx_retry_status` (`retry_status`),
KEY `idx_idempotent_id` (`idempotent_id`),
KEY `idx_unique_id` (`unique_id`),
KEY `idx_biz_no` (`biz_no`),
KEY `idx_create_dt` (`create_dt`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务日志基础信息表'
;
CREATE TABLE `er_retry_task_log_message`
(
`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 '组名称',
`unique_id` varchar(64) NOT NULL COMMENT '同组下id唯一',
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`message` longtext NOT NULL COMMENT '异常信息',
`log_num` int(11) NOT NULL DEFAULT 1 COMMENT '日志数量',
`real_time` bigint(13) NOT NULL DEFAULT 0 COMMENT '上报时间',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `unique_id`),
KEY `idx_create_dt` (`create_dt`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务调度日志信息记录表'
;
CREATE TABLE `er_scene_config`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
`group_name` varchar(64) NOT NULL COMMENT '组名称',
`scene_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '组状态 0、未启用 1、启用',
`max_retry_count` int(11) NOT NULL DEFAULT '5' COMMENT '最大重试次数',
`back_off` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1、默认等级 2、固定间隔时间 3、CRON 表达式',
`trigger_interval` varchar(16) NOT NULL DEFAULT '' COMMENT '间隔时长',
`deadline_request` bigint(20) unsigned NOT NULL DEFAULT '60000' COMMENT 'Deadline Request 调用链超时 单位毫秒',
`executor_timeout` int(11) unsigned NOT NULL DEFAULT '5' COMMENT '任务执行超时时间,单位秒',
`route_key` tinyint(4) NOT NULL DEFAULT '4' 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 '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='场景配置'
;
CREATE TABLE `er_server_node`
(
`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 '组名称',
`host_id` varchar(64) NOT NULL COMMENT '主机id',
`host_ip` varchar(64) NOT NULL COMMENT '机器ip',
`context_path` varchar(256) NOT NULL DEFAULT '/' COMMENT '客户端上下文路径 server.servlet.context-path',
`host_port` int(16) NOT NULL COMMENT '机器端口',
`expire_at` datetime NOT NULL COMMENT '过期时间',
`node_type` tinyint(4) NOT NULL COMMENT '节点类型 1、客户端 2、是服务端',
`ext_attrs` varchar(256) 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`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`),
KEY `idx_expire_at_node_type` (`expire_at`, `node_type`),
UNIQUE KEY `uk_host_id_host_ip` (`host_id`, `host_ip`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='服务器节点'
;
CREATE TABLE `er_distributed_lock`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`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 (`id`),
UNIQUE KEY `uk_name` (`name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='锁定表'
;
CREATE TABLE `er_system_user`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(64) NOT NULL COMMENT '账号',
`password` varchar(128) NOT NULL COMMENT '密码',
`role` tinyint(4) NOT NULL DEFAULT '0' 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_username` (`username`) USING BTREE
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='系统用户表';
-- pwd: admin
INSERT INTO `er_system_user` VALUES (1, 'admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2, now(), now());
CREATE TABLE `er_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 DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`system_user_id` bigint(20) 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`),
UNIQUE KEY `uk_namespace_id_group_name_system_user_id` (`namespace_id`, `group_name`, `system_user_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='系统用户权限表';
CREATE TABLE `er_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 `er_job`
(
`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 '组名称',
`job_name` varchar(64) NOT NULL COMMENT '名称',
`args_str` text DEFAULT NULL COMMENT '执行方法参数',
`args_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '参数类型 ',
`next_trigger_at` bigint(13) NOT NULL COMMENT '下次触发时间',
`job_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '任务状态 0、关闭、1、开启',
`task_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '任务类型 1、集群 2、广播 3、切片',
`route_key` tinyint(4) NOT NULL DEFAULT '4' COMMENT '路由策略',
`executor_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '执行器类型',
`executor_info` varchar(255) DEFAULT NULL COMMENT '执行器名称',
`trigger_type` tinyint(4) NOT NULL COMMENT '触发类型 1.CRON 表达式 2. 固定时间',
`trigger_interval` varchar(255) NOT NULL COMMENT '间隔时长',
`block_strategy` tinyint(4) NOT NULL DEFAULT '1' COMMENT '阻塞策略 1、丢弃 2、覆盖 3、并行',
`executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任务执行超时时间,单位秒',
`max_retry_times` int(11) NOT NULL DEFAULT '0' COMMENT '最大重试次数',
`parallel_num` int(11) NOT NULL DEFAULT '1' COMMENT '并行数',
`retry_interval` int(11) NOT NULL DEFAULT '0' COMMENT '重试间隔(s)',
`bucket_index` int(11) NOT NULL DEFAULT '0' COMMENT 'bucket',
`resident` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否是常驻任务',
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述',
`ext_attrs` varchar(256) 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 '修改时间',
`deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1、删除',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`),
KEY `idx_job_status_bucket_index` (`job_status`, `bucket_index`),
KEY `idx_create_dt` (`create_dt`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务信息';
INSERT INTO `er_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, '', '', now(), now(), 0);
CREATE TABLE `er_job_log_message`
(
`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 '组名称',
`job_id` bigint(20) NOT NULL COMMENT '任务信息id',
`task_batch_id` bigint(20) NOT NULL COMMENT '任务批次id',
`task_id` bigint(20) NOT NULL COMMENT '调度任务id',
`message` longtext NOT NULL COMMENT '调度信息',
`log_num` int(11) NOT NULL DEFAULT 1 COMMENT '日志数量',
`real_time` bigint(13) NOT NULL DEFAULT 0 COMMENT '上报时间',
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`ext_attrs` varchar(256) NULL default '' COMMENT '扩展字段',
PRIMARY KEY (`id`),
KEY `idx_task_batch_id_task_id` (`task_batch_id`, `task_id`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='调度日志';
CREATE TABLE `er_job_task`
(
`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 '组名称',
`job_id` bigint(20) NOT NULL COMMENT '任务信息id',
`task_batch_id` bigint(20) NOT NULL COMMENT '调度任务id',
`parent_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '父执行器id',
`task_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '执行的状态 0、失败 1、成功',
`retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '重试次数',
`client_info` varchar(128) DEFAULT NULL COMMENT '客户端地址 clientId#ip:port',
`result_message` text NOT NULL COMMENT '执行结果',
`args_str` text DEFAULT NULL COMMENT '执行方法参数',
`args_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '参数类型 ',
`ext_attrs` varchar(256) 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`),
KEY `idx_task_batch_id_task_status` (`task_batch_id`, `task_status`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务实例';
CREATE TABLE `er_job_task_batch`
(
`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 '组名称',
`job_id` bigint(20) NOT NULL COMMENT '任务id',
`workflow_node_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '工作流节点id',
`parent_workflow_node_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '工作流任务父批次id',
`workflow_task_batch_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '工作流任务批次id',
`task_batch_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '任务批次状态 0、失败 1、成功',
`operation_reason` tinyint(4) NOT NULL DEFAULT '0' COMMENT '操作原因',
`execution_at` bigint(13) NOT NULL DEFAULT '0' COMMENT '任务执行时间',
`system_task_type` tinyint(4) NOT NULL DEFAULT '3' COMMENT '任务类型 3、JOB任务 4、WORKFLOW任务',
`parent_id` varchar(64) 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 '修改时间',
`deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1、删除',
`ext_attrs` varchar(256) NULL default '' COMMENT '扩展字段',
PRIMARY KEY (`id`),
KEY `idx_job_id_task_batch_status` (`job_id`, `task_batch_status`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`),
KEY `idx_workflow_task_batch_id_workflow_node_id` (`workflow_task_batch_id`, `workflow_node_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务批次';
CREATE TABLE `er_job_notify_config`
(
`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 '组名称',
`job_id` bigint(20) NOT NULL COMMENT '任务id',
`notify_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知状态 0、未启用 1、启用',
`notify_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知类型 1、钉钉 2、邮件 3、企业微信',
`notify_attribute` varchar(512) NOT NULL COMMENT '配置属性',
`notify_threshold` int(11) NOT NULL DEFAULT '0' COMMENT '通知阈值',
`notify_scene` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知场景',
`rate_limiter_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '限流状态 0、未启用 1、启用',
`rate_limiter_threshold` int(11) NOT NULL DEFAULT '0' 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 '修改时间',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name_job_id` (`namespace_id`, `group_name`, job_id)
) ENGINE = InnoDB
AUTO_INCREMENT = 4
DEFAULT CHARSET = utf8mb4 COMMENT ='job通知配置';
CREATE TABLE `er_job_summary`
(
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`group_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '组名称',
`business_id` bigint NOT NULL COMMENT '业务id (job_id或workflow_id)',
`system_task_type` tinyint(4) NOT NULL DEFAULT '3' COMMENT '任务类型 3、JOB任务 4、WORKFLOW任务',
`trigger_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '统计时间',
`success_num` int NOT NULL DEFAULT '0' COMMENT '执行成功-日志数量',
`fail_num` int NOT NULL DEFAULT '0' COMMENT '执行失败-日志数量',
`fail_reason` varchar(512) NOT NULL DEFAULT '' COMMENT '失败原因',
`stop_num` int NOT NULL DEFAULT '0' COMMENT '执行失败-日志数量',
`stop_reason` varchar(512) NOT NULL DEFAULT '' COMMENT '失败原因',
`cancel_num` int NOT NULL DEFAULT '0' COMMENT '执行失败-日志数量',
`cancel_reason` varchar(512) 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 '修改时间',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name_business_id` (`namespace_id`, `group_name`, business_id),
UNIQUE KEY `uk_trigger_at_system_task_type_business_id` (`trigger_at`, `system_task_type`, `business_id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4 COMMENT ='DashBoard_Job';
CREATE TABLE `er_retry_summary`
(
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`group_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '组名称',
`scene_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '场景名称',
`trigger_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '统计时间',
`running_num` int NOT NULL DEFAULT '0' COMMENT '重试中-日志数量',
`finish_num` int NOT NULL DEFAULT '0' COMMENT '重试完成-日志数量',
`max_count_num` int NOT NULL DEFAULT '0' COMMENT '重试到达最大次数-日志数量',
`suspend_num` int 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`),
KEY `idx_trigger_at` (`trigger_at`),
UNIQUE KEY `uk_scene_name_trigger_at` (`namespace_id`, `group_name`, `scene_name`, `trigger_at`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4 COMMENT ='DashBoard_Retry';
CREATE TABLE `er_workflow`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`workflow_name` varchar(64) NOT NULL COMMENT '工作流名称',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`group_name` varchar(64) NOT NULL COMMENT '组名称',
`workflow_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '工作流状态 0、关闭、1、开启',
`trigger_type` tinyint(4) NOT NULL COMMENT '触发类型 1.CRON 表达式 2. 固定时间',
`trigger_interval` varchar(255) NOT NULL COMMENT '间隔时长',
`next_trigger_at` bigint(13) NOT NULL COMMENT '下次触发时间',
`block_strategy` tinyint(4) NOT NULL DEFAULT '1' COMMENT '阻塞策略 1、丢弃 2、覆盖 3、并行',
`executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任务执行超时时间,单位秒',
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述',
`flow_info` text DEFAULT NULL COMMENT '流程信息',
`bucket_index` int(11) NOT NULL DEFAULT '0' COMMENT 'bucket',
`version` int(11) NOT 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、删除',
`ext_attrs` varchar(256) NULL default '' COMMENT '扩展字段',
PRIMARY KEY (`id`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='工作流';
CREATE TABLE `er_workflow_node`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`node_name` varchar(64) NOT NULL COMMENT '节点名称',
`group_name` varchar(64) NOT NULL COMMENT '组名称',
`job_id` bigint(20) NOT NULL COMMENT '任务信息id',
`workflow_id` bigint(20) NOT NULL COMMENT '工作流ID',
`node_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1、任务节点 2、条件节点',
`expression_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1、SpEl、2、Aviator 3、QL',
`fail_strategy` tinyint(4) NOT NULL DEFAULT 1 COMMENT '失败策略 1、跳过 2、阻塞',
`workflow_node_status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '工作流节点状态 0、关闭、1、开启',
`priority_level` int(11) NOT NULL DEFAULT 1 COMMENT '优先级',
`node_info` text DEFAULT NULL COMMENT '节点信息 ',
`version` int(11) NOT 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、删除',
`ext_attrs` varchar(256) NULL default '' COMMENT '扩展字段',
PRIMARY KEY (`id`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='工作流节点';
CREATE TABLE `er_workflow_task_batch`
(
`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 '组名称',
`workflow_id` bigint(20) NOT NULL COMMENT '工作流任务id',
`task_batch_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '任务批次状态 0、失败 1、成功',
`operation_reason` tinyint(4) NOT NULL DEFAULT '0' COMMENT '操作原因',
`flow_info` text DEFAULT NULL COMMENT '流程信息',
`execution_at` bigint(13) 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 '修改时间',
`deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1、删除',
`ext_attrs` varchar(256) NULL default '' COMMENT '扩展字段',
PRIMARY KEY (`id`),
KEY `idx_job_id_task_batch_status` (`workflow_id`, `task_batch_status`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='工作流批次';

@ -1,830 +0,0 @@
-- Oracle DDL
-- er_namespace
CREATE TABLE er_namespace
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
name VARCHAR2(64) NOT NULL,
unique_id VARCHAR2(64) NOT NULL,
description VARCHAR2(256) DEFAULT '',
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT DEFAULT 0
);
CREATE UNIQUE INDEX uk_namespace_1 ON er_namespace (unique_id);
COMMENT ON TABLE er_namespace IS '命名空间';
COMMENT ON COLUMN er_namespace.id IS '主键';
COMMENT ON COLUMN er_namespace.name IS '名称';
COMMENT ON COLUMN er_namespace.unique_id IS '唯一id';
COMMENT ON COLUMN er_namespace.description IS '描述';
COMMENT ON COLUMN er_namespace.create_dt IS '创建时间';
COMMENT ON COLUMN er_namespace.update_dt IS '修改时间';
COMMENT ON COLUMN er_namespace.deleted IS '逻辑删除 1、删除';
-- id 为 IDENTITY 类型, 不能插入
INSERT INTO er_namespace(name, unique_id, description, create_dt, update_dt, deleted) VALUES('Development', 'dev', '', sysdate, sysdate, 0 );
INSERT INTO er_namespace(name, unique_id, description, create_dt, update_dt, deleted) VALUES ('Production', 'prod', '', sysdate, sysdate, 0);
-- er_group_config
CREATE TABLE er_group_config
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
description VARCHAR2(256) DEFAULT '',
token VARCHAR2(64) DEFAULT 'ER_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT',
group_status SMALLINT DEFAULT 0,
version INT NOT NULL,
group_partition INT NOT NULL,
id_generator_mode SMALLINT DEFAULT 1,
init_scene SMALLINT DEFAULT 0,
bucket_index INT DEFAULT 0,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_group_config_1 ON er_group_config (namespace_id, group_name);
COMMENT ON TABLE er_group_config IS '组配置';
COMMENT ON COLUMN er_group_config.id IS '主键';
COMMENT ON COLUMN er_group_config.namespace_id IS '命名空间';
COMMENT ON COLUMN er_group_config.group_name IS '组名称';
COMMENT ON COLUMN er_group_config.description IS '组描述';
COMMENT ON COLUMN er_group_config.token IS 'token';
COMMENT ON COLUMN er_group_config.group_status IS '组状态 0、未启用 1、启用';
COMMENT ON COLUMN er_group_config.version IS '版本号';
COMMENT ON COLUMN er_group_config.group_partition IS '分区';
COMMENT ON COLUMN er_group_config.id_generator_mode IS '唯一id生成模式 默认号段模式';
COMMENT ON COLUMN er_group_config.init_scene IS '是否初始化场景 0:否 1:是';
COMMENT ON COLUMN er_group_config.bucket_index IS 'bucket';
COMMENT ON COLUMN er_group_config.create_dt IS '创建时间';
COMMENT ON COLUMN er_group_config.update_dt IS '修改时间';
INSERT INTO er_group_config(namespace_id, group_name, description, token, group_status, version, group_partition, id_generator_mode, init_scene, bucket_index, create_dt, update_dt) VALUES ('dev', 'ruoyi_group', '', 'ER_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, 4, SYSDATE, SYSDATE );
-- er_notify_config
CREATE TABLE er_notify_config
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
scene_name VARCHAR2(64) NOT NULL,
notify_status SMALLINT DEFAULT 0,
notify_type SMALLINT DEFAULT 0,
notify_attribute VARCHAR2(512) NOT NULL,
notify_threshold INT DEFAULT 0,
notify_scene SMALLINT DEFAULT 0,
rate_limiter_status SMALLINT DEFAULT 0,
rate_limiter_threshold INT DEFAULT 0,
description VARCHAR2(256) DEFAULT '',
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_notify_config_1 ON er_notify_config (namespace_id, group_name);
COMMENT ON TABLE er_notify_config IS '通知配置';
COMMENT ON COLUMN er_notify_config.id IS '主键';
COMMENT ON COLUMN er_notify_config.group_name IS '组名称';
COMMENT ON COLUMN er_notify_config.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_notify_config.scene_name IS '场景名称';
COMMENT ON COLUMN er_notify_config.notify_status IS '通知状态 0、未启用 1、启用';
COMMENT ON COLUMN er_notify_config.notify_type IS '通知类型 1、钉钉 2、邮件 3、企业微信';
COMMENT ON COLUMN er_notify_config.notify_attribute IS '配置属性';
COMMENT ON COLUMN er_notify_config.notify_threshold IS '通知阈值';
COMMENT ON COLUMN er_notify_config.notify_scene IS '通知场景';
COMMENT ON COLUMN er_notify_config.rate_limiter_status IS '限流状态 0、未启用 1、启用';
COMMENT ON COLUMN er_notify_config.rate_limiter_threshold IS '每秒限流阈值';
COMMENT ON COLUMN er_notify_config.description IS '描述';
COMMENT ON COLUMN er_notify_config.create_dt IS '创建时间';
COMMENT ON COLUMN er_notify_config.update_dt IS '修改时间';
-- er_retry_dead_letter
CREATE TABLE er_retry_dead_letter_0
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
unique_id VARCHAR2(64) NOT NULL,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
scene_name VARCHAR2(64) NOT NULL,
idempotent_id VARCHAR2(64) NOT NULL,
biz_no VARCHAR2(64) DEFAULT '',
executor_name VARCHAR2(512) DEFAULT '',
args_str CLOB DEFAULT '',
ext_attrs CLOB DEFAULT '',
task_type SMALLINT DEFAULT 1,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_retry_dead_letter_0_1 ON er_retry_dead_letter_0 (namespace_id, group_name, unique_id);
CREATE INDEX idx_retry_dead_letter_0_1 ON er_retry_dead_letter_0 (namespace_id, group_name, scene_name);
CREATE INDEX idx_retry_dead_letter_0_2 ON er_retry_dead_letter_0 (idempotent_id);
CREATE INDEX idx_retry_dead_letter_0_3 ON er_retry_dead_letter_0 (biz_no);
CREATE INDEX idx_retry_dead_letter_0_4 ON er_retry_dead_letter_0 (create_dt);
COMMENT ON TABLE er_retry_dead_letter_0 IS '死信队列表';
COMMENT ON COLUMN er_retry_dead_letter_0.id IS '主键';
COMMENT ON COLUMN er_retry_dead_letter_0.unique_id IS '同组下id唯一';
COMMENT ON COLUMN er_retry_dead_letter_0.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_retry_dead_letter_0.group_name IS '组名称';
COMMENT ON COLUMN er_retry_dead_letter_0.scene_name IS '场景名称';
COMMENT ON COLUMN er_retry_dead_letter_0.idempotent_id IS '幂等id';
COMMENT ON COLUMN er_retry_dead_letter_0.biz_no IS '业务编号';
COMMENT ON COLUMN er_retry_dead_letter_0.executor_name IS '执行器名称';
COMMENT ON COLUMN er_retry_dead_letter_0.args_str IS '执行方法参数';
COMMENT ON COLUMN er_retry_dead_letter_0.ext_attrs IS '扩展字段';
COMMENT ON COLUMN er_retry_dead_letter_0.task_type IS '任务类型 1、重试数据 2、回调数据';
COMMENT ON COLUMN er_retry_dead_letter_0.create_dt IS '创建时间';
-- er_retry_task
CREATE TABLE er_retry_task_0
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
unique_id VARCHAR2(64) NOT NULL,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
scene_name VARCHAR2(64) NOT NULL,
idempotent_id VARCHAR2(64) NOT NULL,
biz_no VARCHAR2(64) DEFAULT '',
executor_name VARCHAR2(512) DEFAULT '',
args_str CLOB DEFAULT '',
ext_attrs CLOB DEFAULT '',
next_trigger_at TIMESTAMP NOT NULL,
retry_count INT DEFAULT 0,
retry_status SMALLINT DEFAULT 0,
task_type SMALLINT DEFAULT 1,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_retry_task_0_1 ON er_retry_task_0 (namespace_id, group_name, unique_id);
CREATE INDEX idx_retry_task_0_1 ON er_retry_task_0 (namespace_id, group_name, scene_name);
CREATE INDEX idx_retry_task_0_2 ON er_retry_task_0 (namespace_id, group_name, retry_status);
CREATE INDEX idx_retry_task_0_3 ON er_retry_task_0 (idempotent_id);
CREATE INDEX idx_retry_task_0_4 ON er_retry_task_0 (biz_no);
CREATE INDEX idx_retry_task_0_5 ON er_retry_task_0 (create_dt);
COMMENT ON TABLE er_retry_task_0 IS '任务表';
COMMENT ON COLUMN er_retry_task_0.id IS '主键';
COMMENT ON COLUMN er_retry_task_0.unique_id IS '同组下id唯一';
COMMENT ON COLUMN er_retry_task_0.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_retry_task_0.group_name IS '组名称';
COMMENT ON COLUMN er_retry_task_0.scene_name IS '场景名称';
COMMENT ON COLUMN er_retry_task_0.idempotent_id IS '幂等id';
COMMENT ON COLUMN er_retry_task_0.biz_no IS '业务编号';
COMMENT ON COLUMN er_retry_task_0.executor_name IS '执行器名称';
COMMENT ON COLUMN er_retry_task_0.args_str IS '执行方法参数';
COMMENT ON COLUMN er_retry_task_0.ext_attrs IS '扩展字段';
COMMENT ON COLUMN er_retry_task_0.next_trigger_at IS '下次触发时间';
COMMENT ON COLUMN er_retry_task_0.retry_count IS '重试次数';
COMMENT ON COLUMN er_retry_task_0.retry_status IS '重试状态 0、重试中 1、成功 2、最大重试次数';
COMMENT ON COLUMN er_retry_task_0.task_type IS '任务类型 1、重试数据 2、回调数据';
COMMENT ON COLUMN er_retry_task_0.create_dt IS '创建时间';
COMMENT ON COLUMN er_retry_task_0.update_dt IS '修改时间';
-- er_retry_task_log
CREATE TABLE er_retry_task_log
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
unique_id VARCHAR2(64) NOT NULL,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
scene_name VARCHAR2(64) NOT NULL,
idempotent_id VARCHAR2(64) NOT NULL,
biz_no VARCHAR2(64) DEFAULT '',
executor_name VARCHAR2(512) DEFAULT '',
args_str CLOB DEFAULT '',
ext_attrs CLOB DEFAULT '',
retry_status SMALLINT DEFAULT 0,
task_type SMALLINT DEFAULT 1,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_retry_task_log_1 ON er_retry_task_log (namespace_id, group_name, scene_name);
CREATE INDEX idx_retry_task_log_2 ON er_retry_task_log (retry_status);
CREATE INDEX idx_retry_task_log_3 ON er_retry_task_log (idempotent_id);
CREATE INDEX idx_retry_task_log_4 ON er_retry_task_log (namespace_id, group_name, unique_id);
CREATE INDEX idx_retry_task_log_5 ON er_retry_task_log (biz_no);
CREATE INDEX idx_retry_task_log_6 ON er_retry_task_log (create_dt);
COMMENT ON TABLE er_retry_task_log IS '任务日志基础信息表';
COMMENT ON COLUMN er_retry_task_log.id IS '主键';
COMMENT ON COLUMN er_retry_task_log.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_retry_task_log.unique_id IS '同组下id唯一';
COMMENT ON COLUMN er_retry_task_log.group_name IS '组名称';
COMMENT ON COLUMN er_retry_task_log.scene_name IS '场景名称';
COMMENT ON COLUMN er_retry_task_log.idempotent_id IS '幂等id';
COMMENT ON COLUMN er_retry_task_log.biz_no IS '业务编号';
COMMENT ON COLUMN er_retry_task_log.executor_name IS '执行器名称';
COMMENT ON COLUMN er_retry_task_log.args_str IS '执行方法参数';
COMMENT ON COLUMN er_retry_task_log.ext_attrs IS '扩展字段';
COMMENT ON COLUMN er_retry_task_log.retry_status IS '重试状态 0、重试中 1、成功 2、最大次数';
COMMENT ON COLUMN er_retry_task_log.task_type IS '任务类型 1、重试数据 2、回调数据';
COMMENT ON COLUMN er_retry_task_log.create_dt IS '创建时间';
COMMENT ON COLUMN er_retry_task_log.update_dt IS '修改时间';
-- er_retry_task_log_message
CREATE TABLE er_retry_task_log_message
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
unique_id VARCHAR2(64) NOT NULL,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
message CLOB DEFAULT '',
log_num INT DEFAULT 1,
real_time NUMERIC(13) DEFAULT 0
);
CREATE INDEX idx_retry_task_log_message_1 ON er_retry_task_log_message (namespace_id, group_name, unique_id);
CREATE INDEX idx_retry_task_log_message_2 ON er_retry_task_log_message (create_dt);
COMMENT ON TABLE er_retry_task_log_message IS '任务调度日志信息记录表';
COMMENT ON COLUMN er_retry_task_log_message.id IS '主键';
COMMENT ON COLUMN er_retry_task_log_message.namespace_id IS '命名空间';
COMMENT ON COLUMN er_retry_task_log_message.group_name IS '组名称';
COMMENT ON COLUMN er_retry_task_log_message.unique_id IS '同组下id唯一';
COMMENT ON COLUMN er_retry_task_log_message.create_dt IS '创建时间';
COMMENT ON COLUMN er_retry_task_log_message.message IS '异常信息';
COMMENT ON COLUMN er_retry_task_log_message.log_num IS '日志数量';
COMMENT ON COLUMN er_retry_task_log_message.real_time IS '上报时间';
-- er_scene_config
CREATE TABLE er_scene_config
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
scene_name VARCHAR2(64) NOT NULL,
group_name VARCHAR2(64) NOT NULL,
scene_status SMALLINT DEFAULT 0,
max_retry_count INT DEFAULT 5,
back_off SMALLINT DEFAULT 1,
trigger_interval VARCHAR2(16) DEFAULT '',
deadline_request NUMBER(20) DEFAULT 60000,
route_key SMALLINT DEFAULT 4,
executor_timeout INT DEFAULT 5,
description VARCHAR2(256) DEFAULT '',
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_scene_config_1 ON er_scene_config (namespace_id, group_name, scene_name);
COMMENT ON TABLE er_scene_config IS '场景配置';
COMMENT ON COLUMN er_scene_config.id IS '主键';
COMMENT ON COLUMN er_scene_config.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_scene_config.scene_name IS '场景名称';
COMMENT ON COLUMN er_scene_config.group_name IS '组名称';
COMMENT ON COLUMN er_scene_config.scene_status IS '组状态 0、未启用 1、启用';
COMMENT ON COLUMN er_scene_config.max_retry_count IS '最大重试次数';
COMMENT ON COLUMN er_scene_config.back_off IS '1、默认等级 2、固定间隔时间 3、CRON 表达式';
COMMENT ON COLUMN er_scene_config.trigger_interval IS '间隔时长';
COMMENT ON COLUMN er_scene_config.deadline_request IS 'Deadline Request 调用链超时 单位毫秒';
COMMENT ON COLUMN er_scene_config.description IS '描述';
COMMENT ON COLUMN er_scene_config.route_key IS '路由策略';
COMMENT ON COLUMN er_scene_config.executor_timeout IS '超时时间';
COMMENT ON COLUMN er_scene_config.create_dt IS '创建时间';
COMMENT ON COLUMN er_scene_config.update_dt IS '修改时间';
-- er_server_node
CREATE TABLE er_server_node
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
host_id VARCHAR2(64) NOT NULL,
host_ip VARCHAR2(64) NOT NULL,
context_path VARCHAR2(256) DEFAULT '/',
host_port INT NOT NULL,
expire_at TIMESTAMP NOT NULL,
node_type SMALLINT NOT NULL,
ext_attrs VARCHAR2(256) DEFAULT '',
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_server_node_1 ON er_server_node (host_id, host_ip);
CREATE INDEX idx_server_node_1 ON er_server_node (expire_at, node_type);
CREATE INDEX idx_server_node_2 ON er_server_node (namespace_id, group_name);
COMMENT ON TABLE er_server_node IS '服务器节点';
COMMENT ON COLUMN er_server_node.id IS '主键';
COMMENT ON COLUMN er_server_node.group_name IS '组名称';
COMMENT ON COLUMN er_server_node.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_server_node.host_id IS '主机id';
COMMENT ON COLUMN er_server_node.host_ip IS '机器ip';
COMMENT ON COLUMN er_server_node.context_path IS '客户端上下文路径 server.servlet.context-path';
COMMENT ON COLUMN er_server_node.host_port IS '机器端口';
COMMENT ON COLUMN er_server_node.expire_at IS '过期时间';
COMMENT ON COLUMN er_server_node.node_type IS '节点类型 1、客户端 2、是服务端';
COMMENT ON COLUMN er_server_node.ext_attrs IS '扩展字段';
COMMENT ON COLUMN er_server_node.create_dt IS '创建时间';
COMMENT ON COLUMN er_server_node.update_dt IS '修改时间';
-- er_distributed_lock
CREATE TABLE er_distributed_lock
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
name VARCHAR2(64) NOT NULL,
lock_until TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
locked_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
locked_by VARCHAR2(255) NOT NULL,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE er_distributed_lock
ADD CONSTRAINT uk_name_distributed_lock UNIQUE (name);
COMMENT ON TABLE er_distributed_lock IS '锁定表';
COMMENT ON COLUMN er_distributed_lock.id IS '主键';
COMMENT ON COLUMN er_distributed_lock.name IS '锁名称';
COMMENT ON COLUMN er_distributed_lock.lock_until IS '锁定时长';
COMMENT ON COLUMN er_distributed_lock.locked_at IS '锁定时间';
COMMENT ON COLUMN er_distributed_lock.locked_by IS '锁定者';
COMMENT ON COLUMN er_distributed_lock.create_dt IS '创建时间';
COMMENT ON COLUMN er_distributed_lock.update_dt IS '修改时间';
-- er_system_user
CREATE TABLE er_system_user
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
username VARCHAR2(64) NOT NULL,
password VARCHAR2(128) NOT NULL,
role SMALLINT DEFAULT 0,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_system_user_1 ON er_system_user (username);
COMMENT ON TABLE er_system_user IS '系统用户表';
COMMENT ON COLUMN er_system_user.id IS '主键';
COMMENT ON COLUMN er_system_user.username IS '账号';
COMMENT ON COLUMN er_system_user.password IS '密码';
COMMENT ON COLUMN er_system_user.role IS '角色1-普通用户、2-管理员';
COMMENT ON COLUMN er_system_user.create_dt IS '创建时间';
COMMENT ON COLUMN er_system_user.update_dt IS '修改时间';
-- er_pwd: admin
INSERT INTO er_system_user(username, password, role, create_dt, update_dt) VALUES ('admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2, SYSDATE, SYSDATE);
-- er_system_user_permission
CREATE TABLE er_system_user_permission
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
system_user_id NUMBER(20) NOT NULL,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_system_user_permission_1 ON er_system_user_permission (namespace_id, group_name, system_user_id);
COMMENT ON TABLE er_system_user_permission IS '系统用户权限表';
COMMENT ON COLUMN er_system_user_permission.id IS '主键';
COMMENT ON COLUMN er_system_user_permission.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_system_user_permission.group_name IS '组名称';
COMMENT ON COLUMN er_system_user_permission.system_user_id IS '系统用户id';
COMMENT ON COLUMN er_system_user_permission.create_dt IS '创建时间';
COMMENT ON COLUMN er_system_user_permission.update_dt IS '修改时间';
-- er_sequence_alloc
CREATE TABLE er_sequence_alloc
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) DEFAULT '',
max_id NUMBER(20) DEFAULT 1,
step INT DEFAULT 100,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_sequence_alloc_1 ON er_sequence_alloc (namespace_id, group_name);
COMMENT ON TABLE er_sequence_alloc IS '号段模式序号ID分配表';
COMMENT ON COLUMN er_sequence_alloc.id IS '主键';
COMMENT ON COLUMN er_sequence_alloc.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_sequence_alloc.group_name IS '组名称';
COMMENT ON COLUMN er_sequence_alloc.max_id IS '最大id';
COMMENT ON COLUMN er_sequence_alloc.step IS '步长';
COMMENT ON COLUMN er_sequence_alloc.update_dt IS '更新时间';
-- er_job
CREATE TABLE er_job
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
job_name VARCHAR2(64) NOT NULL,
args_str CLOB DEFAULT '',
args_type SMALLINT DEFAULT 1,
next_trigger_at NUMBER(20) NOT NULL,
job_status SMALLINT DEFAULT 1,
task_type SMALLINT DEFAULT 1,
route_key SMALLINT DEFAULT 4,
executor_type SMALLINT DEFAULT 1,
executor_info VARCHAR2(255) DEFAULT NULL,
trigger_type SMALLINT NOT NULL,
trigger_interval VARCHAR2(255) NOT NULL,
block_strategy SMALLINT DEFAULT 1,
executor_timeout INT DEFAULT 0,
max_retry_times INT DEFAULT 0,
parallel_num INT DEFAULT 1,
retry_interval INT DEFAULT 0,
bucket_index INT DEFAULT 0,
resident SMALLINT DEFAULT 0,
description VARCHAR2(256) DEFAULT '',
ext_attrs VARCHAR2(256) DEFAULT '',
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT DEFAULT 0
);
CREATE INDEX idx_job_1 ON er_job (namespace_id, group_name);
CREATE INDEX idx_job_2 ON er_job (job_status, bucket_index);
CREATE INDEX idx_job_3 ON er_job (create_dt);
COMMENT ON TABLE er_job IS '任务信息';
COMMENT ON COLUMN er_job.id IS '主键';
COMMENT ON COLUMN er_job.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job.group_name IS '组名称';
COMMENT ON COLUMN er_job.job_name IS '名称';
COMMENT ON COLUMN er_job.args_str IS '执行方法参数';
COMMENT ON COLUMN er_job.args_type IS '参数类型';
COMMENT ON COLUMN er_job.next_trigger_at IS '下次触发时间';
COMMENT ON COLUMN er_job.job_status IS '重试状态 0、关闭、1、开启';
COMMENT ON COLUMN er_job.task_type IS '任务类型 1、集群 2、广播 3、切片';
COMMENT ON COLUMN er_job.route_key IS '路由策略';
COMMENT ON COLUMN er_job.executor_type IS '执行器类型';
COMMENT ON COLUMN er_job.executor_info IS '执行器名称';
COMMENT ON COLUMN er_job.trigger_type IS '触发类型 1.CRON 表达式 2. 固定时间';
COMMENT ON COLUMN er_job.trigger_interval IS '间隔时长';
COMMENT ON COLUMN er_job.block_strategy IS '阻塞策略 1、丢弃 2、覆盖 3、并行';
COMMENT ON COLUMN er_job.executor_timeout IS '任务执行超时时间,单位秒';
COMMENT ON COLUMN er_job.max_retry_times IS '最大重试次数';
COMMENT ON COLUMN er_job.parallel_num IS '并行数';
COMMENT ON COLUMN er_job.retry_interval IS '更新重试间隔(s)';
COMMENT ON COLUMN er_job.bucket_index IS 'bucket';
COMMENT ON COLUMN er_job.resident IS '是否是常驻任务';
COMMENT ON COLUMN er_job.description IS '描述';
COMMENT ON COLUMN er_job.ext_attrs IS '扩展字段';
COMMENT ON COLUMN er_job.create_dt IS '创建时间';
COMMENT ON COLUMN er_job.update_dt IS '更新时间';
COMMENT ON COLUMN er_job.deleted IS '逻辑删除 1、删除';
INSERT INTO er_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, description, ext_attrs, create_dt, update_dt, deleted)
VALUES ('dev', 'ruoyi_group', 'demo-job', NULL, 1, 1710344035622, 1, 1, 4, 1, 'testJobExecutor', 2, '60', 1, 60, 3, 1, 1, 116, 0, '', '', SYSDATE, SYSDATE, 0);
-- er_job_log_message
CREATE TABLE er_job_log_message
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
job_id NUMBER(20) NOT NULL,
task_batch_id NUMBER(20) NOT NULL,
task_id NUMBER(20) NOT NULL,
message CLOB DEFAULT '',
log_num INT DEFAULT 1,
real_time NUMBER(20) DEFAULT 0,
ext_attrs VARCHAR2(256) DEFAULT '',
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_job_log_message_1 ON er_job_log_message (namespace_id, group_name);
CREATE INDEX idx_job_log_message_2 ON er_job_log_message (task_batch_id, task_id);
CREATE INDEX idx_job_log_message_3 ON er_job_log_message (create_dt);
COMMENT ON TABLE er_job_log_message IS '调度日志';
COMMENT ON COLUMN er_job_log_message.id IS '主键';
COMMENT ON COLUMN er_job_log_message.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job_log_message.group_name IS '组名称';
COMMENT ON COLUMN er_job_log_message.job_id IS '任务信息id';
COMMENT ON COLUMN er_job_log_message.task_batch_id IS '任务批次id';
COMMENT ON COLUMN er_job_log_message.task_id IS '调度任务id';
COMMENT ON COLUMN er_job_log_message.message IS '调度信息';
COMMENT ON COLUMN er_job_log_message.log_num IS '日志序号';
COMMENT ON COLUMN er_job_log_message.real_time IS '实际时间';
COMMENT ON COLUMN er_job_log_message.create_dt IS '创建时间';
COMMENT ON COLUMN er_job_log_message.ext_attrs IS '扩展字段';
-- er_job_task
CREATE TABLE er_job_task
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
job_id NUMBER(20) NOT NULL,
task_batch_id NUMBER(20) NOT NULL,
parent_id NUMBER(20) DEFAULT 0,
task_status SMALLINT DEFAULT 0,
retry_count INT DEFAULT 0,
client_info VARCHAR2(128) DEFAULT NULL,
result_message CLOB DEFAULT '',
args_str CLOB DEFAULT '',
args_type SMALLINT DEFAULT 1,
ext_attrs VARCHAR2(256) DEFAULT '',
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_job_task_1 ON er_job_task (namespace_id, group_name);
CREATE INDEX idx_job_task_2 ON er_job_task (task_batch_id, task_status);
CREATE INDEX idx_job_task_3 ON er_job_task (create_dt);
COMMENT ON TABLE er_job_task IS '任务实例';
COMMENT ON COLUMN er_job_task.id IS '主键';
COMMENT ON COLUMN er_job_task.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job_task.group_name IS '组名称';
COMMENT ON COLUMN er_job_task.job_id IS '任务信息id';
COMMENT ON COLUMN er_job_task.task_batch_id IS '任务批次id';
COMMENT ON COLUMN er_job_task.parent_id IS '父执行器id';
COMMENT ON COLUMN er_job_task.task_status IS '执行的状态 0、失败 1、成功';
COMMENT ON COLUMN er_job_task.retry_count IS '重试次数';
COMMENT ON COLUMN er_job_task.client_info IS '客户端地址 clientId#ip:port';
COMMENT ON COLUMN er_job_task.result_message IS '调度信息';
COMMENT ON COLUMN er_job_task.args_str IS '执行方法参数';
COMMENT ON COLUMN er_job_task.args_type IS '参数类型';
COMMENT ON COLUMN er_job_task.create_dt IS '创建时间';
COMMENT ON COLUMN er_job_task.update_dt IS '创建时间';
COMMENT ON COLUMN er_job_task.ext_attrs IS '扩展字段';
-- er_job_task_batch
CREATE TABLE er_job_task_batch
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
job_id NUMBER(20) NOT NULL,
workflow_node_id NUMBER(20) DEFAULT 0,
parent_workflow_node_id NUMBER(20) DEFAULT 0,
workflow_task_batch_id NUMBER(20) DEFAULT 0,
parent_id VARCHAR2(64) DEFAULT '',
task_batch_status SMALLINT DEFAULT 0,
operation_reason SMALLINT DEFAULT 0,
execution_at NUMBER(20) DEFAULT 0,
system_task_type SMALLINT DEFAULT 3,
ext_attrs VARCHAR2(256) DEFAULT '',
deleted SMALLINT DEFAULT 0,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_job_task_batch_1 ON er_job_task_batch (namespace_id, group_name);
CREATE INDEX idx_job_task_batch_2 ON er_job_task_batch (job_id, task_batch_status);
CREATE INDEX idx_job_task_batch_3 ON er_job_task_batch (create_dt);
CREATE INDEX idx_job_task_batch_4 ON er_job_task_batch (workflow_task_batch_id, workflow_node_id);
COMMENT ON TABLE er_job_task_batch IS '任务批次';
COMMENT ON COLUMN er_job_task_batch.id IS '主键';
COMMENT ON COLUMN er_job_task_batch.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job_task_batch.group_name IS '组名称';
COMMENT ON COLUMN er_job_task_batch.job_id IS '任务信息id';
COMMENT ON COLUMN er_job_task_batch.task_batch_status IS '任务批次状态 0、失败 1、成功';
COMMENT ON COLUMN er_job_task_batch.operation_reason IS '操作原因';
COMMENT ON COLUMN er_job_task_batch.workflow_node_id IS '工作流节点id';
COMMENT ON COLUMN er_job_task_batch.parent_workflow_node_id IS '父节点';
COMMENT ON COLUMN er_job_task_batch.workflow_task_batch_id IS '任务批次id';
COMMENT ON COLUMN er_job_task_batch.system_task_type IS '任务类型 0、系统任务 1、业务任务';
COMMENT ON COLUMN er_job_task_batch.execution_at IS '任务执行时间';
COMMENT ON COLUMN er_job_task_batch.parent_id IS '父节点';
COMMENT ON COLUMN er_job_task_batch.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN er_job_task_batch.create_dt IS '创建时间';
COMMENT ON COLUMN er_job_task_batch.update_dt IS '创建时间';
COMMENT ON COLUMN er_job_task_batch.ext_attrs IS '扩展字段';
CREATE TABLE er_job_notify_config
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
job_id NUMBER(20) NOT NULL,
notify_status SMALLINT DEFAULT 0,
notify_type SMALLINT DEFAULT 0,
notify_attribute VARCHAR2(512) NOT NULL,
notify_threshold INT DEFAULT 0,
notify_scene SMALLINT DEFAULT 0,
rate_limiter_status SMALLINT DEFAULT 0,
rate_limiter_threshold INT DEFAULT 0,
description VARCHAR2(256) DEFAULT '',
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_job_notify_config_1 ON er_job_notify_config (namespace_id, group_name, job_id);
COMMENT ON TABLE er_job_notify_config IS '通知配置';
COMMENT ON COLUMN er_job_notify_config.id IS '主键';
COMMENT ON COLUMN er_job_notify_config.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job_notify_config.group_name IS '组名称';
COMMENT ON COLUMN er_job_notify_config.job_id IS '任务信息id';
COMMENT ON COLUMN er_job_notify_config.notify_status IS '通知状态 0、未启用 1、启用';
COMMENT ON COLUMN er_job_notify_config.notify_type IS '通知类型 1、钉钉 2、邮件 3、企业微信';
COMMENT ON COLUMN er_job_notify_config.notify_attribute IS '配置属性';
COMMENT ON COLUMN er_job_notify_config.notify_threshold IS '通知阈值';
COMMENT ON COLUMN er_job_notify_config.notify_scene IS '通知场景';
COMMENT ON COLUMN er_job_notify_config.rate_limiter_status IS '限流状态 0、未启用 1、启用';
COMMENT ON COLUMN er_job_notify_config.rate_limiter_threshold IS '每秒限流阈值';
COMMENT ON COLUMN er_job_notify_config.description IS '描述';
COMMENT ON COLUMN er_job_notify_config.create_dt IS '创建时间';
COMMENT ON COLUMN er_job_notify_config.update_dt IS '修改时间';
-- er_retry_summary
CREATE TABLE er_retry_summary
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) DEFAULT '',
scene_name VARCHAR2(50) DEFAULT '',
trigger_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
running_num INT DEFAULT 0,
finish_num INT DEFAULT 0,
max_count_num INT DEFAULT 0,
suspend_num INT DEFAULT 0,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_retry_summary_1 ON er_retry_summary (namespace_id, group_name, scene_name, trigger_at);
COMMENT ON TABLE er_retry_summary IS 'DashBoard_Retry';
COMMENT ON COLUMN er_retry_summary.id IS '主键';
COMMENT ON COLUMN er_retry_summary.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_retry_summary.group_name IS '组名称';
COMMENT ON COLUMN er_retry_summary.scene_name IS '场景名称';
COMMENT ON COLUMN er_retry_summary.trigger_at IS '统计时间';
COMMENT ON COLUMN er_retry_summary.running_num IS '重试中-日志数量';
COMMENT ON COLUMN er_retry_summary.finish_num IS '重试完成-日志数量';
COMMENT ON COLUMN er_retry_summary.max_count_num IS '重试到达最大次数-日志数量';
COMMENT ON COLUMN er_retry_summary.suspend_num IS '暂停重试-日志数量';
COMMENT ON COLUMN er_retry_summary.create_dt IS '创建时间';
COMMENT ON COLUMN er_retry_summary.update_dt IS '修改时间';
-- er_job_summary
CREATE TABLE er_job_summary
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) DEFAULT '',
business_id NUMBER(20) NOT NULL,
system_task_type SMALLINT DEFAULT '3',
trigger_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
success_num INT DEFAULT 0,
fail_num INT DEFAULT 0,
fail_reason VARCHAR2(512) DEFAULT '',
stop_num INT DEFAULT 0,
stop_reason VARCHAR2(512) DEFAULT '',
cancel_num INT DEFAULT 0,
cancel_reason VARCHAR2(512) DEFAULT '',
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_job_summary_1 ON er_job_summary (trigger_at, system_task_type, business_id);
CREATE INDEX idx_job_summary_1 ON er_job_summary (namespace_id, group_name, business_id);
COMMENT ON TABLE er_job_summary IS 'DashBoard_Job';
COMMENT ON COLUMN er_job_summary.id IS '主键';
COMMENT ON COLUMN er_job_summary.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job_summary.group_name IS '组名称';
COMMENT ON COLUMN er_job_summary.business_id IS '业务id (job_id或workflow_id)';
COMMENT ON COLUMN er_job_summary.system_task_type IS '任务类型 3、JOB任务 4、WORKFLOW任务';
COMMENT ON COLUMN er_job_summary.trigger_at IS '统计时间';
COMMENT ON COLUMN er_job_summary.success_num IS '执行成功-日志数量';
COMMENT ON COLUMN er_job_summary.fail_num IS '执行失败-日志数量';
COMMENT ON COLUMN er_job_summary.fail_reason IS '失败原因';
COMMENT ON COLUMN er_job_summary.stop_num IS '执行失败-日志数量';
COMMENT ON COLUMN er_job_summary.stop_reason IS '失败原因';
COMMENT ON COLUMN er_job_summary.cancel_num IS '执行失败-日志数量';
COMMENT ON COLUMN er_job_summary.cancel_reason IS '失败原因';
-- er_workflow
CREATE TABLE er_workflow
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
workflow_name VARCHAR2(64) NOT NULL,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
workflow_status SMALLINT DEFAULT 1,
trigger_type SMALLINT NOT NULL,
trigger_interval VARCHAR2(255) NOT NULL,
next_trigger_at NUMBER(20) NOT NULL,
block_strategy SMALLINT DEFAULT 1,
executor_timeout INT DEFAULT 0,
description VARCHAR2(256) DEFAULT '',
flow_info CLOB DEFAULT '',
bucket_index INT DEFAULT 0,
version INT NOT NULL,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT DEFAULT 0,
ext_attrs VARCHAR2(256) DEFAULT ''
);
CREATE INDEX idx_workflow_1 ON er_workflow (create_dt);
CREATE INDEX idx_workflow_2 ON er_workflow (namespace_id, group_name);
COMMENT ON TABLE er_workflow IS '工作流';
COMMENT ON COLUMN er_workflow.id IS '主键';
COMMENT ON COLUMN er_workflow.workflow_name IS '工作流名称';
COMMENT ON COLUMN er_workflow.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_workflow.group_name IS '组名称';
COMMENT ON COLUMN er_workflow.workflow_status IS '工作流状态 0、关闭、1、开启';
COMMENT ON COLUMN er_workflow.trigger_type IS '触发类型 1.CRON 表达式 2. 固定时间';
COMMENT ON COLUMN er_workflow.trigger_interval IS '间隔时长';
COMMENT ON COLUMN er_workflow.next_trigger_at IS '下次触发时间';
COMMENT ON COLUMN er_workflow.block_strategy IS '阻塞策略 1、丢弃 2、覆盖 3、并行';
COMMENT ON COLUMN er_workflow.executor_timeout IS '任务执行超时时间,单位秒';
COMMENT ON COLUMN er_workflow.description IS '描述';
COMMENT ON COLUMN er_workflow.flow_info IS '流程信息';
COMMENT ON COLUMN er_workflow.bucket_index IS 'bucket';
COMMENT ON COLUMN er_workflow.version IS '版本号';
COMMENT ON COLUMN er_workflow.create_dt IS '创建时间';
COMMENT ON COLUMN er_workflow.update_dt IS '修改时间';
COMMENT ON COLUMN er_workflow.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN er_workflow.ext_attrs IS '扩展字段';
-- er_workflow_node
CREATE TABLE er_workflow_node
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
node_name VARCHAR2(64) NOT NULL,
group_name VARCHAR2(64) NOT NULL,
job_id NUMBER(20) NOT NULL,
workflow_id NUMBER(20) NOT NULL,
node_type SMALLINT DEFAULT 1,
expression_type SMALLINT DEFAULT 0,
fail_strategy SMALLINT DEFAULT 1,
workflow_node_status SMALLINT DEFAULT 1,
priority_level INT DEFAULT 1,
node_info CLOB DEFAULT '',
version INT NOT NULL,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT DEFAULT 0,
ext_attrs VARCHAR2(256) DEFAULT ''
);
CREATE INDEX idx_workflow_node_1 ON er_workflow_node (create_dt);
CREATE INDEX idx_workflow_node_2 ON er_workflow_node (namespace_id, group_name);
COMMENT ON TABLE er_workflow_node IS '工作流节点';
COMMENT ON COLUMN er_workflow_node.id IS '主键';
COMMENT ON COLUMN er_workflow_node.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_workflow_node.node_name IS '节点名称';
COMMENT ON COLUMN er_workflow_node.group_name IS '组名称';
COMMENT ON COLUMN er_workflow_node.job_id IS '任务信息id';
COMMENT ON COLUMN er_workflow_node.workflow_id IS '工作流ID';
COMMENT ON COLUMN er_workflow_node.node_type IS '1、任务节点 2、条件节点';
COMMENT ON COLUMN er_workflow_node.expression_type IS '1、SpEl、2、Aviator 3、QL';
COMMENT ON COLUMN er_workflow_node.fail_strategy IS '失败策略 1、跳过 2、阻塞';
COMMENT ON COLUMN er_workflow_node.workflow_node_status IS '工作流节点状态 0、关闭、1、开启';
COMMENT ON COLUMN er_workflow_node.priority_level IS '优先级';
COMMENT ON COLUMN er_workflow_node.node_info IS '节点信息';
COMMENT ON COLUMN er_workflow_node.version IS '版本号';
COMMENT ON COLUMN er_workflow_node.create_dt IS '创建时间';
COMMENT ON COLUMN er_workflow_node.update_dt IS '修改时间';
COMMENT ON COLUMN er_workflow_node.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN er_workflow_node.ext_attrs IS '扩展字段';
-- er_workflow_task_batch
CREATE TABLE er_workflow_task_batch
(
id NUMBER GENERATED ALWAYS AS IDENTITY,
namespace_id VARCHAR2(64) DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR2(64) NOT NULL,
workflow_id NUMBER(20) NOT NULL,
task_batch_status SMALLINT DEFAULT 0,
operation_reason SMALLINT DEFAULT 0,
flow_info CLOB DEFAULT '',
execution_at NUMBER(20) DEFAULT 0,
create_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT DEFAULT 0,
ext_attrs VARCHAR2(256) DEFAULT ''
);
CREATE INDEX idx_workflow_task_batch_1 ON er_workflow_task_batch (workflow_id, task_batch_status);
CREATE INDEX idx_workflow_task_batch_2 ON er_workflow_task_batch (create_dt);
CREATE INDEX idx_workflow_task_batch_3 ON er_workflow_task_batch (namespace_id, group_name);
COMMENT ON TABLE er_workflow_task_batch IS '工作流批次';
COMMENT ON COLUMN er_workflow_task_batch.id IS '主键';
COMMENT ON COLUMN er_workflow_task_batch.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_workflow_task_batch.group_name IS '组名称';
COMMENT ON COLUMN er_workflow_task_batch.workflow_id IS '工作流任务id';
COMMENT ON COLUMN er_workflow_task_batch.task_batch_status IS '任务批次状态 0、失败 1、成功';
COMMENT ON COLUMN er_workflow_task_batch.operation_reason IS '操作原因';
COMMENT ON COLUMN er_workflow_task_batch.flow_info IS '流程信息';
COMMENT ON COLUMN er_workflow_task_batch.execution_at IS '任务执行时间';
COMMENT ON COLUMN er_workflow_task_batch.create_dt IS '创建时间';
COMMENT ON COLUMN er_workflow_task_batch.update_dt IS '修改时间';
COMMENT ON COLUMN er_workflow_task_batch.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN er_workflow_task_batch.ext_attrs IS '扩展字段';

File diff suppressed because it is too large Load Diff

@ -1,808 +0,0 @@
-- PostgreSQL DDL
CREATE TABLE er_namespace
(
id BIGSERIAL PRIMARY KEY,
name VARCHAR(64) NOT NULL,
unique_id VARCHAR(64) NOT NULL,
description VARCHAR(256) NOT NULL DEFAULT '',
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT NOT NULL DEFAULT 0
);
CREATE UNIQUE INDEX uk_namespace_unique_id ON er_namespace (unique_id);
COMMENT ON COLUMN er_namespace.id IS '主键';
COMMENT ON COLUMN er_namespace.name IS '名称';
COMMENT ON COLUMN er_namespace.unique_id IS '唯一id';
COMMENT ON COLUMN er_namespace.description IS '描述';
COMMENT ON COLUMN er_namespace.create_dt IS '创建时间';
COMMENT ON COLUMN er_namespace.update_dt IS '修改时间';
COMMENT ON COLUMN er_namespace.deleted IS '逻辑删除 1、删除';
COMMENT ON TABLE er_namespace IS '命名空间';
INSERT INTO er_namespace VALUES (1, 'Development', 'dev', '', now(), now(), 0);
INSERT INTO er_namespace VALUES (2, 'Production', 'prod', '', now(), now(), 0);
CREATE TABLE er_group_config
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
description VARCHAR(256) DEFAULT '',
token VARCHAR(64) DEFAULT 'ER_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT',
group_status SMALLINT NOT NULL DEFAULT 0,
version INT NOT NULL,
group_partition INT NOT NULL,
id_generator_mode SMALLINT NOT NULL DEFAULT 1,
init_scene SMALLINT NOT NULL DEFAULT 0,
bucket_index INT NOT NULL DEFAULT 0,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_namespace_id_group_name_group_config ON er_group_config (namespace_id, group_name);
COMMENT ON COLUMN er_group_config.id IS '主键';
COMMENT ON COLUMN er_group_config.namespace_id IS '命名空间';
COMMENT ON COLUMN er_group_config.group_name IS '组名称';
COMMENT ON COLUMN er_group_config.description IS '组描述';
COMMENT ON COLUMN er_group_config.token IS 'token';
COMMENT ON COLUMN er_group_config.group_status IS '组状态 0、未启用 1、启用';
COMMENT ON COLUMN er_group_config.version IS '版本号';
COMMENT ON COLUMN er_group_config.group_partition IS '分区';
COMMENT ON COLUMN er_group_config.id_generator_mode IS '唯一id生成模式 默认号段模式';
COMMENT ON COLUMN er_group_config.init_scene IS '是否初始化场景 0:否 1:是';
COMMENT ON COLUMN er_group_config.bucket_index IS 'bucket';
COMMENT ON COLUMN er_group_config.create_dt IS '创建时间';
COMMENT ON COLUMN er_group_config.update_dt IS '修改时间';
COMMENT ON TABLE er_group_config IS '组配置';
INSERT INTO er_group_config VALUES (1, 'dev', 'ruoyi_group', '', 'ER_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, 4, now(), now());
CREATE TABLE er_notify_config
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
scene_name VARCHAR(64) NOT NULL,
notify_status SMALLINT NOT NULL DEFAULT 0,
notify_type SMALLINT NOT NULL DEFAULT 0,
notify_attribute VARCHAR(512) NOT NULL,
notify_threshold INT NOT NULL DEFAULT 0,
notify_scene SMALLINT NOT NULL DEFAULT 0,
rate_limiter_status SMALLINT NOT NULL DEFAULT 0,
rate_limiter_threshold INT NOT NULL DEFAULT 0,
description VARCHAR(256) NOT NULL DEFAULT '',
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_namespace_id_group_name_notify_config ON er_notify_config (namespace_id, group_name);
COMMENT ON COLUMN er_notify_config.id IS '主键';
COMMENT ON COLUMN er_notify_config.group_name IS '组名称';
COMMENT ON COLUMN er_notify_config.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_notify_config.scene_name IS '场景名称';
COMMENT ON COLUMN er_notify_config.notify_status IS '通知状态 0、未启用 1、启用';
COMMENT ON COLUMN er_notify_config.notify_type IS '通知类型 1、钉钉 2、邮件 3、企业微信';
COMMENT ON COLUMN er_notify_config.notify_attribute IS '配置属性';
COMMENT ON COLUMN er_notify_config.notify_threshold IS '通知阈值';
COMMENT ON COLUMN er_notify_config.notify_scene IS '通知场景';
COMMENT ON COLUMN er_notify_config.rate_limiter_status IS '限流状态 0、未启用 1、启用';
COMMENT ON COLUMN er_notify_config.rate_limiter_threshold IS '每秒限流阈值';
COMMENT ON COLUMN er_notify_config.description IS '描述';
COMMENT ON COLUMN er_notify_config.create_dt IS '创建时间';
COMMENT ON COLUMN er_notify_config.update_dt IS '修改时间';
COMMENT ON TABLE er_notify_config IS '通知配置';
CREATE TABLE er_retry_dead_letter_0
(
id BIGSERIAL PRIMARY KEY,
unique_id VARCHAR(64) NOT NULL,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
scene_name VARCHAR(64) 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,
task_type SMALLINT NOT NULL DEFAULT 1,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_namespace_id_group_name_unique_id_retry_dead_letter ON er_retry_dead_letter_0 (namespace_id, group_name, unique_id);
CREATE INDEX idx_namespace_id_group_name_scene_name_retry_dead_letter ON er_retry_dead_letter_0 (namespace_id, group_name, scene_name);
CREATE INDEX idx_idempotent_id_retry_dead_letter ON er_retry_dead_letter_0 (idempotent_id);
CREATE INDEX idx_biz_no_retry_dead_letter ON er_retry_dead_letter_0 (biz_no);
CREATE INDEX idx_create_dt_retry_dead_letter ON er_retry_dead_letter_0 (create_dt);
COMMENT ON COLUMN er_retry_dead_letter_0.id IS '主键';
COMMENT ON COLUMN er_retry_dead_letter_0.unique_id IS '同组下id唯一';
COMMENT ON COLUMN er_retry_dead_letter_0.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_retry_dead_letter_0.group_name IS '组名称';
COMMENT ON COLUMN er_retry_dead_letter_0.scene_name IS '场景名称';
COMMENT ON COLUMN er_retry_dead_letter_0.idempotent_id IS '幂等id';
COMMENT ON COLUMN er_retry_dead_letter_0.biz_no IS '业务编号';
COMMENT ON COLUMN er_retry_dead_letter_0.executor_name IS '执行器名称';
COMMENT ON COLUMN er_retry_dead_letter_0.args_str IS '执行方法参数';
COMMENT ON COLUMN er_retry_dead_letter_0.ext_attrs IS '扩展字段';
COMMENT ON COLUMN er_retry_dead_letter_0.task_type IS '任务类型 1、重试数据 2、回调数据';
COMMENT ON COLUMN er_retry_dead_letter_0.create_dt IS '创建时间';
COMMENT ON TABLE er_retry_dead_letter_0 IS '死信队列表';
CREATE TABLE er_retry_task_0
(
id BIGSERIAL PRIMARY KEY,
unique_id VARCHAR(64) NOT NULL,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
scene_name VARCHAR(64) 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,
next_trigger_at TIMESTAMP NOT NULL,
retry_count INT NOT NULL DEFAULT 0,
retry_status SMALLINT NOT NULL DEFAULT 0,
task_type SMALLINT NOT NULL DEFAULT 1,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_name_unique_id_retry_task ON er_retry_task_0 (namespace_id, group_name, unique_id);
CREATE INDEX idx_namespace_id_group_name_scene_name_retry_task ON er_retry_task_0 (namespace_id, group_name, scene_name);
CREATE INDEX idx_namespace_id_group_name_retry_status_retry_task ON er_retry_task_0 (namespace_id, group_name, retry_status);
CREATE INDEX idx_idempotent_id_retry_task ON er_retry_task_0 (idempotent_id);
CREATE INDEX idx_biz_no_retry_task ON er_retry_task_0 (biz_no);
CREATE INDEX idx_create_dt_retry_task ON er_retry_task_0 (create_dt);
COMMENT ON COLUMN er_retry_task_0.id IS '主键';
COMMENT ON COLUMN er_retry_task_0.unique_id IS '同组下id唯一';
COMMENT ON COLUMN er_retry_task_0.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_retry_task_0.group_name IS '组名称';
COMMENT ON COLUMN er_retry_task_0.scene_name IS '场景名称';
COMMENT ON COLUMN er_retry_task_0.idempotent_id IS '幂等id';
COMMENT ON COLUMN er_retry_task_0.biz_no IS '业务编号';
COMMENT ON COLUMN er_retry_task_0.executor_name IS '执行器名称';
COMMENT ON COLUMN er_retry_task_0.args_str IS '执行方法参数';
COMMENT ON COLUMN er_retry_task_0.ext_attrs IS '扩展字段';
COMMENT ON COLUMN er_retry_task_0.next_trigger_at IS '下次触发时间';
COMMENT ON COLUMN er_retry_task_0.retry_count IS '重试次数';
COMMENT ON COLUMN er_retry_task_0.retry_status IS '重试状态 0、重试中 1、成功 2、最大重试次数';
COMMENT ON COLUMN er_retry_task_0.task_type IS '任务类型 1、重试数据 2、回调数据';
COMMENT ON COLUMN er_retry_task_0.create_dt IS '创建时间';
COMMENT ON COLUMN er_retry_task_0.update_dt IS '修改时间';
COMMENT ON TABLE er_retry_task_0 IS '任务表';
CREATE TABLE er_retry_task_log
(
id BIGSERIAL PRIMARY KEY,
unique_id VARCHAR(64) NOT NULL,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
scene_name VARCHAR(64) 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,
retry_status SMALLINT NOT NULL DEFAULT 0,
task_type SMALLINT NOT NULL DEFAULT 1,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_group_name_scene_name_retry_task_log ON er_retry_task_log (namespace_id, group_name, scene_name);
CREATE INDEX idx_retry_status_retry_task_log ON er_retry_task_log (retry_status);
CREATE INDEX idx_idempotent_id_retry_task_log ON er_retry_task_log (idempotent_id);
CREATE INDEX idx_unique_id ON er_retry_task_log (namespace_id, group_name, unique_id);
CREATE INDEX idx_biz_no_retry_task_log ON er_retry_task_log (biz_no);
CREATE INDEX idx_create_dt_retry_task_log ON er_retry_task_log (create_dt);
COMMENT ON COLUMN er_retry_task_log.id IS '主键';
COMMENT ON COLUMN er_retry_task_log.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_retry_task_log.unique_id IS '同组下id唯一';
COMMENT ON COLUMN er_retry_task_log.group_name IS '组名称';
COMMENT ON COLUMN er_retry_task_log.scene_name IS '场景名称';
COMMENT ON COLUMN er_retry_task_log.idempotent_id IS '幂等id';
COMMENT ON COLUMN er_retry_task_log.biz_no IS '业务编号';
COMMENT ON COLUMN er_retry_task_log.executor_name IS '执行器名称';
COMMENT ON COLUMN er_retry_task_log.args_str IS '执行方法参数';
COMMENT ON COLUMN er_retry_task_log.ext_attrs IS '扩展字段';
COMMENT ON COLUMN er_retry_task_log.retry_status IS '重试状态 0、重试中 1、成功 2、最大次数';
COMMENT ON COLUMN er_retry_task_log.task_type IS '任务类型 1、重试数据 2、回调数据';
COMMENT ON COLUMN er_retry_task_log.create_dt IS '创建时间';
COMMENT ON COLUMN er_retry_task_log.update_dt IS '修改时间';
COMMENT ON TABLE er_retry_task_log IS '任务日志基础信息表';
CREATE TABLE er_retry_task_log_message
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
unique_id VARCHAR(64) NOT NULL,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
message TEXT NOT NULL,
log_num INT NOT NULL DEFAULT 1,
real_time BIGINT NOT NULL DEFAULT 0
);
CREATE INDEX idx_namespace_id_group_name_unique_id ON er_retry_task_log_message (namespace_id, group_name, unique_id);
CREATE INDEX idx_create_dt ON er_retry_task_log_message (create_dt);
COMMENT ON COLUMN er_retry_task_log_message.id IS '主键';
COMMENT ON COLUMN er_retry_task_log_message.namespace_id IS '命名空间';
COMMENT ON COLUMN er_retry_task_log_message.group_name IS '组名称';
COMMENT ON COLUMN er_retry_task_log_message.unique_id IS '同组下id唯一';
COMMENT ON COLUMN er_retry_task_log_message.create_dt IS '创建时间';
COMMENT ON COLUMN er_retry_task_log_message.message IS '异常信息';
COMMENT ON COLUMN er_retry_task_log_message.log_num IS '日志条数';
COMMENT ON COLUMN er_retry_task_log_message.real_time IS '实际时间';
COMMENT ON TABLE er_retry_task_log_message IS '任务调度日志信息记录表';
CREATE TABLE er_scene_config
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
scene_name VARCHAR(64) NOT NULL,
group_name VARCHAR(64) NOT NULL,
scene_status SMALLINT NOT NULL DEFAULT 0,
max_retry_count INT NOT NULL DEFAULT 5,
back_off SMALLINT NOT NULL DEFAULT 1,
trigger_interval VARCHAR(16) NOT NULL DEFAULT '',
deadline_request BIGINT NOT NULL DEFAULT 60000,
route_key SMALLINT NOT NULL DEFAULT 4,
executor_timeout INT NOT NULL DEFAULT 5,
description VARCHAR(256) NOT NULL DEFAULT '',
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_namespace_id_group_name_scene_name ON er_scene_config (namespace_id, group_name, scene_name);
COMMENT ON COLUMN er_scene_config.id IS '主键';
COMMENT ON COLUMN er_scene_config.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_scene_config.scene_name IS '场景名称';
COMMENT ON COLUMN er_scene_config.group_name IS '组名称';
COMMENT ON COLUMN er_scene_config.scene_status IS '组状态 0、未启用 1、启用';
COMMENT ON COLUMN er_scene_config.max_retry_count IS '最大重试次数';
COMMENT ON COLUMN er_scene_config.back_off IS '1、默认等级 2、固定间隔时间 3、CRON 表达式';
COMMENT ON COLUMN er_scene_config.trigger_interval IS '间隔时长';
COMMENT ON COLUMN er_scene_config.deadline_request IS 'Deadline Request 调用链超时 单位毫秒';
COMMENT ON COLUMN er_scene_config.description IS '描述';
COMMENT ON COLUMN er_scene_config.route_key IS '路由策略';
COMMENT ON COLUMN er_scene_config.executor_timeout IS '超时时间';
COMMENT ON COLUMN er_scene_config.create_dt IS '创建时间';
COMMENT ON COLUMN er_scene_config.update_dt IS '修改时间';
COMMENT ON TABLE er_scene_config IS '场景配置';
CREATE TABLE er_server_node
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
host_id VARCHAR(64) NOT NULL,
host_ip VARCHAR(64) NOT NULL,
context_path VARCHAR(256) NOT NULL DEFAULT '/',
host_port INT NOT NULL,
expire_at TIMESTAMP NOT NULL,
node_type SMALLINT NOT NULL,
ext_attrs VARCHAR(256) DEFAULT '',
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_host_id_host_ip ON er_server_node (host_id, host_ip);
CREATE INDEX idx_expire_at_node_type ON er_server_node (expire_at, node_type);
CREATE INDEX idx_namespace_id_group_name_server_node ON er_server_node (namespace_id, group_name);
COMMENT ON COLUMN er_server_node.id IS '主键';
COMMENT ON COLUMN er_server_node.group_name IS '组名称';
COMMENT ON COLUMN er_server_node.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_server_node.host_id IS '主机id';
COMMENT ON COLUMN er_server_node.host_ip IS '机器ip';
COMMENT ON COLUMN er_server_node.context_path IS '客户端上下文路径 server.servlet.context-path';
COMMENT ON COLUMN er_server_node.host_port IS '机器端口';
COMMENT ON COLUMN er_server_node.expire_at IS '过期时间';
COMMENT ON COLUMN er_server_node.node_type IS '节点类型 1、客户端 2、是服务端';
COMMENT ON COLUMN er_server_node.ext_attrs IS '扩展字段';
COMMENT ON COLUMN er_server_node.create_dt IS '创建时间';
COMMENT ON COLUMN er_server_node.update_dt IS '修改时间';
COMMENT ON TABLE er_server_node IS '服务器节点';
CREATE TABLE er_distributed_lock
(
id BIGSERIAL PRIMARY KEY,
name VARCHAR(64) NOT NULL,
lock_until TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
locked_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
locked_by VARCHAR(255) NOT NULL,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
ALTER TABLE er_distributed_lock
ADD CONSTRAINT uk_name UNIQUE (name);
COMMENT ON COLUMN er_distributed_lock.id IS '主键';
COMMENT ON COLUMN er_distributed_lock.name IS '锁名称';
COMMENT ON COLUMN er_distributed_lock.lock_until IS '锁定时长';
COMMENT ON COLUMN er_distributed_lock.locked_at IS '锁定时间';
COMMENT ON COLUMN er_distributed_lock.locked_by IS '锁定者';
COMMENT ON COLUMN er_distributed_lock.create_dt IS '创建时间';
COMMENT ON COLUMN er_distributed_lock.update_dt IS '修改时间';
COMMENT ON TABLE er_distributed_lock IS '锁定表';
CREATE TABLE er_system_user
(
id BIGSERIAL PRIMARY KEY,
username VARCHAR(64) NOT NULL,
password VARCHAR(128) NOT NULL,
role SMALLINT NOT NULL DEFAULT 0,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_username ON er_system_user (username);
COMMENT ON COLUMN er_system_user.id IS '主键';
COMMENT ON COLUMN er_system_user.username IS '账号';
COMMENT ON COLUMN er_system_user.password IS '密码';
COMMENT ON COLUMN er_system_user.role IS '角色1-普通用户、2-管理员';
COMMENT ON COLUMN er_system_user.create_dt IS '创建时间';
COMMENT ON COLUMN er_system_user.update_dt IS '修改时间';
COMMENT ON TABLE er_system_user IS '系统用户表';
-- pwd: admin
INSERT INTO er_system_user VALUES (1, 'admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2, now(), now());
CREATE TABLE er_system_user_permission
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
system_user_id BIGINT NOT NULL,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_namespace_id_group_name_system_user_id ON er_system_user_permission (namespace_id, group_name, system_user_id);
COMMENT ON COLUMN er_system_user_permission.id IS '主键';
COMMENT ON COLUMN er_system_user_permission.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_system_user_permission.group_name IS '组名称';
COMMENT ON COLUMN er_system_user_permission.system_user_id IS '系统用户id';
COMMENT ON COLUMN er_system_user_permission.create_dt IS '创建时间';
COMMENT ON COLUMN er_system_user_permission.update_dt IS '修改时间';
COMMENT ON TABLE er_system_user_permission IS '系统用户权限表';
CREATE TABLE er_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_namespace_id_group_name ON er_sequence_alloc (namespace_id, group_name);
COMMENT ON COLUMN er_sequence_alloc.id IS '主键';
COMMENT ON COLUMN er_sequence_alloc.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_sequence_alloc.group_name IS '组名称';
COMMENT ON COLUMN er_sequence_alloc.max_id IS '最大id';
COMMENT ON COLUMN er_sequence_alloc.step IS '步长';
COMMENT ON COLUMN er_sequence_alloc.update_dt IS '更新时间';
COMMENT ON TABLE er_sequence_alloc IS '号段模式序号ID分配表';
-- 分布式调度DDL
CREATE TABLE er_job
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
job_name VARCHAR(64) NOT NULL,
args_str TEXT NOT NULL DEFAULT '',
args_type SMALLINT NOT NULL DEFAULT 1,
next_trigger_at BIGINT NOT NULL,
job_status SMALLINT NOT NULL DEFAULT 1,
task_type SMALLINT NOT NULL DEFAULT 1,
route_key SMALLINT NOT NULL DEFAULT 4,
executor_type SMALLINT NOT NULL DEFAULT 1,
executor_info VARCHAR(255) DEFAULT NULL,
trigger_type SMALLINT NOT NULL,
trigger_interval VARCHAR(255) NOT NULL,
block_strategy SMALLINT NOT NULL DEFAULT 1,
executor_timeout INT NOT NULL DEFAULT 0,
max_retry_times INT NOT NULL DEFAULT 0,
parallel_num INT NOT NULL DEFAULT 1,
retry_interval INT NOT NULL DEFAULT 0,
bucket_index INT NOT NULL DEFAULT 0,
resident SMALLINT NOT NULL DEFAULT 0,
description VARCHAR(256) NOT NULL DEFAULT '',
ext_attrs VARCHAR(256) DEFAULT NULL,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT NOT NULL DEFAULT 0
);
CREATE INDEX idx_namespace_id_group_name_job ON er_job (namespace_id, group_name);
CREATE INDEX idx_job_status_bucket_index_job ON er_job (job_status, bucket_index);
CREATE INDEX idx_create_dt_job ON er_job (create_dt);
COMMENT ON COLUMN er_job.id IS '主键';
COMMENT ON COLUMN er_job.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job.group_name IS '组名称';
COMMENT ON COLUMN er_job.job_name IS '名称';
COMMENT ON COLUMN er_job.args_str IS '执行方法参数';
COMMENT ON COLUMN er_job.args_type IS '参数类型';
COMMENT ON COLUMN er_job.next_trigger_at IS '下次触发时间';
COMMENT ON COLUMN er_job.job_status IS '重试状态 0、关闭、1、开启';
COMMENT ON COLUMN er_job.task_type IS '任务类型 1、集群 2、广播 3、切片';
COMMENT ON COLUMN er_job.route_key IS '路由策略';
COMMENT ON COLUMN er_job.executor_type IS '执行器类型';
COMMENT ON COLUMN er_job.executor_info IS '执行器名称';
COMMENT ON COLUMN er_job.trigger_type IS '触发类型 1.CRON 表达式 2. 固定时间';
COMMENT ON COLUMN er_job.trigger_interval IS '间隔时长';
COMMENT ON COLUMN er_job.block_strategy IS '阻塞策略 1、丢弃 2、覆盖 3、并行';
COMMENT ON COLUMN er_job.executor_timeout IS '任务执行超时时间,单位秒';
COMMENT ON COLUMN er_job.max_retry_times IS '最大重试次数';
COMMENT ON COLUMN er_job.parallel_num IS '并行数';
COMMENT ON COLUMN er_job.retry_interval IS '更新重试间隔(s)';
COMMENT ON COLUMN er_job.bucket_index IS 'bucket';
COMMENT ON COLUMN er_job.resident IS '是否是常驻任务';
COMMENT ON COLUMN er_job.description IS '描述';
COMMENT ON COLUMN er_job.ext_attrs IS '扩展字段';
COMMENT ON COLUMN er_job.create_dt IS '创建时间';
COMMENT ON COLUMN er_job.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN er_job.update_dt IS '更新时间';
COMMENT ON TABLE er_job IS '任务信息';
INSERT INTO er_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, '', '', now(), now(), 0);
CREATE TABLE er_job_log_message
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
job_id BIGINT NOT NULL,
task_batch_id BIGINT NOT NULL,
task_id BIGINT NOT NULL,
message TEXT NOT NULL,
log_num INT NOT NULL DEFAULT 1,
real_time BIGINT NOT NULL DEFAULT 0,
ext_attrs VARCHAR(256) DEFAULT '',
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_namespace_id_group_name_to_job_log_message ON er_job_log_message (namespace_id, group_name);
CREATE INDEX idx_task_batch_id_task_id_to_job_log_message ON er_job_log_message (task_batch_id, task_id);
CREATE INDEX idx_create_dt_to_job_log_message ON er_job_log_message (create_dt);
COMMENT ON COLUMN er_job_log_message.id IS '主键';
COMMENT ON COLUMN er_job_log_message.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job_log_message.group_name IS '组名称';
COMMENT ON COLUMN er_job_log_message.job_id IS '任务信息id';
COMMENT ON COLUMN er_job_log_message.task_batch_id IS '任务批次id';
COMMENT ON COLUMN er_job_log_message.task_id IS '调度任务id';
COMMENT ON COLUMN er_job_log_message.message IS '调度信息';
COMMENT ON COLUMN er_job_log_message.log_num IS '日志序号';
COMMENT ON COLUMN er_job_log_message.real_time IS '实际时间';
COMMENT ON COLUMN er_job_log_message.create_dt IS '创建时间';
COMMENT ON COLUMN er_job_log_message.ext_attrs IS '扩展字段';
COMMENT ON TABLE er_job_log_message IS '调度日志';
CREATE TABLE er_job_task
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
job_id BIGINT NOT NULL,
task_batch_id BIGINT NOT NULL,
parent_id BIGINT NOT NULL DEFAULT 0,
task_status SMALLINT NOT NULL DEFAULT 0,
retry_count INT NOT NULL DEFAULT 0,
client_info VARCHAR(128) DEFAULT NULL,
result_message TEXT NOT NULL,
args_str TEXT NOT NULL,
args_type SMALLINT NOT NULL DEFAULT 1,
ext_attrs VARCHAR(256) DEFAULT '',
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_namespace_id_group_name_to_job_task ON er_job_task (namespace_id, group_name);
CREATE INDEX idx_task_batch_id_task_status_to_job_task ON er_job_task (task_batch_id, task_status);
CREATE INDEX idx_create_dt_to_job_task ON er_job_task (create_dt);
COMMENT ON COLUMN er_job_task.id IS '主键';
COMMENT ON COLUMN er_job_task.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job_task.group_name IS '组名称';
COMMENT ON COLUMN er_job_task.job_id IS '任务信息id';
COMMENT ON COLUMN er_job_task.task_batch_id IS '任务批次id';
COMMENT ON COLUMN er_job_task.parent_id IS '父执行器id';
COMMENT ON COLUMN er_job_task.task_status IS '执行的状态 0、失败 1、成功';
COMMENT ON COLUMN er_job_task.retry_count IS '重试次数';
COMMENT ON COLUMN er_job_task.client_info IS '客户端地址 clientId#ip:port';
COMMENT ON COLUMN er_job_task.result_message IS '调度信息';
COMMENT ON COLUMN er_job_task.args_str IS '执行方法参数';
COMMENT ON COLUMN er_job_task.args_type IS '参数类型';
COMMENT ON COLUMN er_job_task.create_dt IS '创建时间';
COMMENT ON COLUMN er_job_task.update_dt IS '创建时间';
COMMENT ON COLUMN er_job_task.ext_attrs IS '扩展字段';
COMMENT ON TABLE er_job_task IS '任务实例';
CREATE TABLE er_job_task_batch
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
job_id BIGINT NOT NULL,
workflow_node_id BIGINT NOT NULL DEFAULT 0,
parent_workflow_node_id BIGINT NOT NULL DEFAULT 0,
workflow_task_batch_id BIGINT NOT NULL DEFAULT 0,
parent_id VARCHAR(64) NOT NULL DEFAULT '',
task_batch_status SMALLINT NOT NULL DEFAULT 0,
operation_reason SMALLINT NOT NULL DEFAULT 0,
execution_at BIGINT NOT NULL DEFAULT 0,
system_task_type SMALLINT NOT NULL DEFAULT 3,
ext_attrs VARCHAR(256) DEFAULT '',
deleted SMALLINT NOT NULL DEFAULT 0,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_namespace_id_group_name_to_job_task_batch ON er_job_task_batch (namespace_id, group_name);
CREATE INDEX idx_job_id_task_batch_status_to_job_task_batch ON er_job_task_batch (job_id, task_batch_status);
CREATE INDEX idx_create_dt_to_job_task_batch ON er_job_task_batch (create_dt);
CREATE INDEX idx_workflow_task_batch_id_workflow_node_id ON er_job_task_batch (workflow_task_batch_id, workflow_node_id);
COMMENT ON COLUMN er_job_task_batch.id IS '主键';
COMMENT ON COLUMN er_job_task_batch.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job_task_batch.group_name IS '组名称';
COMMENT ON COLUMN er_job_task_batch.job_id IS '任务信息id';
COMMENT ON COLUMN er_job_task_batch.task_batch_status IS '任务批次状态 0、失败 1、成功';
COMMENT ON COLUMN er_job_task_batch.operation_reason IS '操作原因';
COMMENT ON COLUMN er_job_task_batch.workflow_node_id IS '工作流节点id';
COMMENT ON COLUMN er_job_task_batch.parent_workflow_node_id IS '父节点';
COMMENT ON COLUMN er_job_task_batch.workflow_task_batch_id IS '任务批次id';
COMMENT ON COLUMN er_job_task_batch.system_task_type IS '任务类型 0、系统任务 1、业务任务';
COMMENT ON COLUMN er_job_task_batch.execution_at IS '任务执行时间';
COMMENT ON COLUMN er_job_task_batch.parent_id IS '父节点';
COMMENT ON COLUMN er_job_task_batch.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN er_job_task_batch.create_dt IS '创建时间';
COMMENT ON COLUMN er_job_task_batch.update_dt IS '创建时间';
COMMENT ON COLUMN er_job_task_batch.ext_attrs IS '扩展字段';
COMMENT ON TABLE er_job_task_batch IS '任务批次';
CREATE TABLE er_job_notify_config
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
job_id BIGINT NOT NULL,
notify_status SMALLINT NOT NULL DEFAULT 0,
notify_type SMALLINT NOT NULL DEFAULT 0,
notify_attribute VARCHAR(512) NOT NULL,
notify_threshold INT NOT NULL DEFAULT 0,
notify_scene SMALLINT NOT NULL DEFAULT 0,
rate_limiter_status SMALLINT NOT NULL DEFAULT 0,
rate_limiter_threshold INT NOT NULL DEFAULT 0,
description VARCHAR(256) NOT NULL DEFAULT '',
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_namespace_id_group_name_job_id_job_notify_config ON er_job_notify_config (namespace_id, group_name, job_id);
COMMENT ON COLUMN er_job_notify_config.id IS '主键';
COMMENT ON COLUMN er_job_notify_config.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job_notify_config.group_name IS '组名称';
COMMENT ON COLUMN er_job_notify_config.job_id IS '任务信息id';
COMMENT ON COLUMN er_job_notify_config.notify_status IS '通知状态 0、未启用 1、启用';
COMMENT ON COLUMN er_job_notify_config.notify_type IS '通知类型 1、钉钉 2、邮件 3、企业微信';
COMMENT ON COLUMN er_job_notify_config.notify_attribute IS '配置属性';
COMMENT ON COLUMN er_job_notify_config.notify_threshold IS '通知阈值';
COMMENT ON COLUMN er_job_notify_config.notify_scene IS '通知场景';
COMMENT ON COLUMN er_job_notify_config.rate_limiter_status IS '限流状态 0、未启用 1、启用';
COMMENT ON COLUMN er_job_notify_config.rate_limiter_threshold IS '每秒限流阈值';
COMMENT ON COLUMN er_job_notify_config.description IS '描述';
COMMENT ON COLUMN er_job_notify_config.create_dt IS '创建时间';
COMMENT ON COLUMN er_job_notify_config.update_dt IS '修改时间';
COMMENT ON TABLE er_job_notify_config IS '通知配置';
CREATE TABLE er_retry_summary
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL DEFAULT '',
scene_name VARCHAR(50) NOT NULL DEFAULT '',
trigger_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
running_num INT NOT NULL DEFAULT 0,
finish_num INT NOT NULL DEFAULT 0,
max_count_num INT NOT NULL DEFAULT 0,
suspend_num INT NOT NULL DEFAULT 0,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_scene_name_trigger_at ON er_retry_summary (namespace_id, group_name, scene_name, trigger_at);
COMMENT ON COLUMN er_retry_summary.id IS '主键';
COMMENT ON COLUMN er_retry_summary.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_retry_summary.group_name IS '组名称';
COMMENT ON COLUMN er_retry_summary.scene_name IS '场景名称';
COMMENT ON COLUMN er_retry_summary.trigger_at IS '统计时间';
COMMENT ON COLUMN er_retry_summary.running_num IS '重试中-日志数量';
COMMENT ON COLUMN er_retry_summary.finish_num IS '重试完成-日志数量';
COMMENT ON COLUMN er_retry_summary.max_count_num IS '重试到达最大次数-日志数量';
COMMENT ON COLUMN er_retry_summary.suspend_num IS '暂停重试-日志数量';
COMMENT ON COLUMN er_retry_summary.create_dt IS '创建时间';
COMMENT ON COLUMN er_retry_summary.update_dt IS '修改时间';
COMMENT ON TABLE er_retry_summary IS 'DashBoard_Retry';
CREATE TABLE er_job_summary
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL DEFAULT '',
business_id BIGINT NOT NULL,
system_task_type SMALLINT NOT NULL DEFAULT '3',
trigger_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
success_num INT NOT NULL DEFAULT 0,
fail_num INT NOT NULL DEFAULT 0,
fail_reason VARCHAR(512) NOT NULL DEFAULT '',
stop_num INT NOT NULL DEFAULT 0,
stop_reason VARCHAR(512) NOT NULL DEFAULT '',
cancel_num INT NOT NULL DEFAULT 0,
cancel_reason VARCHAR(512) NOT NULL DEFAULT '',
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE UNIQUE INDEX uk_trigger_at_system_task_type_business_id ON er_job_summary (trigger_at, system_task_type, business_id);
CREATE INDEX idx_namespace_id_group_name_job_id ON er_job_summary (namespace_id, group_name, business_id);
COMMENT ON COLUMN er_job_summary.id IS '主键';
COMMENT ON COLUMN er_job_summary.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_job_summary.group_name IS '组名称';
COMMENT ON COLUMN er_job_summary.business_id IS '业务id (job_id或workflow_id)';
COMMENT ON COLUMN er_job_summary.system_task_type IS '任务类型 3、JOB任务 4、WORKFLOW任务';
COMMENT ON COLUMN er_job_summary.trigger_at IS '统计时间';
COMMENT ON COLUMN er_job_summary.success_num IS '执行成功-日志数量';
COMMENT ON COLUMN er_job_summary.fail_num IS '执行失败-日志数量';
COMMENT ON COLUMN er_job_summary.fail_reason IS '失败原因';
COMMENT ON COLUMN er_job_summary.stop_num IS '执行失败-日志数量';
COMMENT ON COLUMN er_job_summary.stop_reason IS '失败原因';
COMMENT ON COLUMN er_job_summary.cancel_num IS '执行失败-日志数量';
COMMENT ON COLUMN er_job_summary.cancel_reason IS '失败原因';
COMMENT ON TABLE er_job_summary IS 'DashBoard_Job';
CREATE TABLE er_workflow
(
id BIGSERIAL PRIMARY KEY,
workflow_name varchar(64) NOT NULL,
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name varchar(64) NOT NULL,
workflow_status smallint NOT NULL DEFAULT 1,
trigger_type smallint NOT NULL,
trigger_interval varchar(255) NOT NULL,
next_trigger_at BIGINT NOT NULL,
block_strategy smallint NOT NULL DEFAULT 1,
executor_timeout INT NOT NULL DEFAULT 0,
description varchar(256) NOT NULL DEFAULT '',
flow_info text DEFAULT NULL,
bucket_index INT NOT NULL DEFAULT 0,
version INT NOT NULL,
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted smallint NOT NULL DEFAULT 0,
ext_attrs varchar(256) NULL DEFAULT ''
);
CREATE INDEX idx_create_dt_workflow ON er_workflow (create_dt);
CREATE INDEX idx_namespace_id_group_name_workflow ON er_workflow (namespace_id, group_name);
COMMENT ON TABLE er_workflow IS '工作流';
COMMENT ON COLUMN er_workflow.id IS '主键';
COMMENT ON COLUMN er_workflow.workflow_name IS '工作流名称';
COMMENT ON COLUMN er_workflow.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_workflow.group_name IS '组名称';
COMMENT ON COLUMN er_workflow.workflow_status IS '工作流状态 0、关闭、1、开启';
COMMENT ON COLUMN er_workflow.trigger_type IS '触发类型 1.CRON 表达式 2. 固定时间';
COMMENT ON COLUMN er_workflow.trigger_interval IS '间隔时长';
COMMENT ON COLUMN er_workflow.next_trigger_at IS '下次触发时间';
COMMENT ON COLUMN er_workflow.block_strategy IS '阻塞策略 1、丢弃 2、覆盖 3、并行';
COMMENT ON COLUMN er_workflow.executor_timeout IS '任务执行超时时间,单位秒';
COMMENT ON COLUMN er_workflow.description IS '描述';
COMMENT ON COLUMN er_workflow.flow_info IS '流程信息';
COMMENT ON COLUMN er_workflow.bucket_index IS 'bucket';
COMMENT ON COLUMN er_workflow.version IS '版本号';
COMMENT ON COLUMN er_workflow.create_dt IS '创建时间';
COMMENT ON COLUMN er_workflow.update_dt IS '修改时间';
COMMENT ON COLUMN er_workflow.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN er_workflow.ext_attrs IS '扩展字段';
CREATE TABLE er_workflow_node
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
node_name VARCHAR(64) NOT NULL,
group_name VARCHAR(64) NOT NULL,
job_id BIGINT NOT NULL,
workflow_id BIGINT NOT NULL,
node_type SMALLINT NOT NULL DEFAULT 1,
expression_type SMALLINT NOT NULL DEFAULT 0,
fail_strategy SMALLINT NOT NULL DEFAULT 1,
workflow_node_status SMALLINT NOT NULL DEFAULT 1,
priority_level INT NOT NULL DEFAULT 1,
node_info TEXT DEFAULT NULL,
version INT NOT NULL,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT NOT NULL DEFAULT 0,
ext_attrs VARCHAR(256) NULL DEFAULT ''
);
CREATE INDEX idx_create_dt_workflow_node ON er_workflow_node (create_dt);
CREATE INDEX idx_namespace_id_group_name_workflow_node ON er_workflow_node (namespace_id, group_name);
COMMENT ON TABLE er_workflow_node IS '工作流节点';
COMMENT ON COLUMN er_workflow_node.id IS '主键';
COMMENT ON COLUMN er_workflow_node.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_workflow_node.node_name IS '节点名称';
COMMENT ON COLUMN er_workflow_node.group_name IS '组名称';
COMMENT ON COLUMN er_workflow_node.job_id IS '任务信息id';
COMMENT ON COLUMN er_workflow_node.workflow_id IS '工作流ID';
COMMENT ON COLUMN er_workflow_node.node_type IS '1、任务节点 2、条件节点';
COMMENT ON COLUMN er_workflow_node.expression_type IS '1、SpEl、2、Aviator 3、QL';
COMMENT ON COLUMN er_workflow_node.fail_strategy IS '失败策略 1、跳过 2、阻塞';
COMMENT ON COLUMN er_workflow_node.workflow_node_status IS '工作流节点状态 0、关闭、1、开启';
COMMENT ON COLUMN er_workflow_node.priority_level IS '优先级';
COMMENT ON COLUMN er_workflow_node.node_info IS '节点信息';
COMMENT ON COLUMN er_workflow_node.version IS '版本号';
COMMENT ON COLUMN er_workflow_node.create_dt IS '创建时间';
COMMENT ON COLUMN er_workflow_node.update_dt IS '修改时间';
COMMENT ON COLUMN er_workflow_node.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN er_workflow_node.ext_attrs IS '扩展字段';
CREATE TABLE er_workflow_task_batch
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
workflow_id BIGINT NOT NULL,
task_batch_status SMALLINT NOT NULL DEFAULT 0,
operation_reason SMALLINT NOT NULL DEFAULT 0,
flow_info TEXT DEFAULT NULL,
execution_at BIGINT NOT NULL DEFAULT 0,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT NOT NULL DEFAULT 0,
ext_attrs VARCHAR(256) NULL DEFAULT ''
);
CREATE INDEX idx_job_id_task_batch_status_workflow_task_batch ON er_workflow_task_batch (workflow_id, task_batch_status);
CREATE INDEX idx_create_dt_workflow_task_batch ON er_workflow_task_batch (create_dt);
CREATE INDEX idx_namespace_id_group_name_workflow_task_batch ON er_workflow_task_batch (namespace_id, group_name);
COMMENT ON TABLE er_workflow_task_batch IS '工作流批次';
COMMENT ON COLUMN er_workflow_task_batch.id IS '主键';
COMMENT ON COLUMN er_workflow_task_batch.namespace_id IS '命名空间id';
COMMENT ON COLUMN er_workflow_task_batch.group_name IS '组名称';
COMMENT ON COLUMN er_workflow_task_batch.workflow_id IS '工作流任务id';
COMMENT ON COLUMN er_workflow_task_batch.task_batch_status IS '任务批次状态 0、失败 1、成功';
COMMENT ON COLUMN er_workflow_task_batch.operation_reason IS '操作原因';
COMMENT ON COLUMN er_workflow_task_batch.flow_info IS '流程信息';
COMMENT ON COLUMN er_workflow_task_batch.execution_at IS '任务执行时间';
COMMENT ON COLUMN er_workflow_task_batch.create_dt IS '创建时间';
COMMENT ON COLUMN er_workflow_task_batch.update_dt IS '修改时间';
COMMENT ON COLUMN er_workflow_task_batch.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN er_workflow_task_batch.ext_attrs IS '扩展字段';

File diff suppressed because it is too large Load Diff

@ -1,233 +1,528 @@
-- ----------------------------
-- Table structure for pj_app_info
-- ----------------------------
DROP TABLE IF EXISTS `pj_app_info`;
CREATE TABLE `pj_app_info` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`app_name` varchar(255) NULL DEFAULT NULL,
`current_server` varchar(255) NULL DEFAULT NULL,
`gmt_create` datetime(6) NULL DEFAULT NULL,
`gmt_modified` datetime(6) NULL DEFAULT NULL,
`password` varchar(255) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uidx01_app_info`(`app_name`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 ROW_FORMAT = Dynamic;
SET NAMES utf8mb4;
-- ----------------------------
-- Records of pj_app_info
-- ----------------------------
INSERT INTO `pj_app_info` VALUES (1, 'ruoyi-worker', '127.0.0.1:10010', '2023-06-13 16:32:59.263000', '2023-07-04 17:25:49.798000', '123456');
CREATE TABLE `er_namespace`
(
`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) 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 '修改时间',
`deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1、删除',
PRIMARY KEY (`id`),
KEY `idx_name` (`name`),
UNIQUE KEY `uk_unique_id` (`unique_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='命名空间';
-- ----------------------------
-- Table structure for pj_container_info
-- ----------------------------
DROP TABLE IF EXISTS `pj_container_info`;
CREATE TABLE `pj_container_info` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`app_id` bigint(0) NULL DEFAULT NULL,
`container_name` varchar(255) NULL DEFAULT NULL,
`gmt_create` datetime(6) NULL DEFAULT NULL,
`gmt_modified` datetime(6) NULL DEFAULT NULL,
`last_deploy_time` datetime(6) NULL DEFAULT NULL,
`source_info` varchar(255) NULL DEFAULT NULL,
`source_type` int(0) NULL DEFAULT NULL,
`status` int(0) NULL DEFAULT NULL,
`version` varchar(255) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx01_container_info`(`app_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 ROW_FORMAT = Dynamic;
INSERT INTO `er_namespace` VALUES (1, 'Development', 'dev', '', now(), now(), 0);
INSERT INTO `er_namespace` VALUES (2, 'Production', 'prod', '', now(), now(), 0);
-- ----------------------------
-- Table structure for pj_instance_info
-- ----------------------------
DROP TABLE IF EXISTS `pj_instance_info`;
CREATE TABLE `pj_instance_info` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`actual_trigger_time` bigint(0) NULL DEFAULT NULL,
`app_id` bigint(0) NULL DEFAULT NULL,
`expected_trigger_time` bigint(0) NULL DEFAULT NULL,
`finished_time` bigint(0) NULL DEFAULT NULL,
`gmt_create` datetime(6) NULL DEFAULT NULL,
`gmt_modified` datetime(6) NULL DEFAULT NULL,
`instance_id` bigint(0) NULL DEFAULT NULL,
`instance_params` longtext NULL,
`job_id` bigint(0) NULL DEFAULT NULL,
`job_params` longtext NULL,
`last_report_time` bigint(0) NULL DEFAULT NULL,
`result` longtext NULL,
`running_times` bigint(0) NULL DEFAULT NULL,
`status` int(0) NULL DEFAULT NULL,
`task_tracker_address` varchar(255) NULL DEFAULT NULL,
`type` int(0) NULL DEFAULT NULL,
`wf_instance_id` bigint(0) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx01_instance_info`(`job_id`, `status`) USING BTREE,
INDEX `idx02_instance_info`(`app_id`, `status`) USING BTREE,
INDEX `idx03_instance_info`(`instance_id`, `status`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for pj_job_info
-- ----------------------------
DROP TABLE IF EXISTS `pj_job_info`;
CREATE TABLE `pj_job_info` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`alarm_config` varchar(255) NULL DEFAULT NULL,
`app_id` bigint(0) NULL DEFAULT NULL,
`concurrency` int(0) NULL DEFAULT NULL,
`designated_workers` varchar(255) NULL DEFAULT NULL,
`dispatch_strategy` int(0) NULL DEFAULT NULL,
`execute_type` int(0) NULL DEFAULT NULL,
`extra` varchar(255) NULL DEFAULT NULL,
`gmt_create` datetime(6) NULL DEFAULT NULL,
`gmt_modified` datetime(6) NULL DEFAULT NULL,
`instance_retry_num` int(0) NULL DEFAULT NULL,
`instance_time_limit` bigint(0) NULL DEFAULT NULL,
`job_description` varchar(255) NULL DEFAULT NULL,
`job_name` varchar(255) NULL DEFAULT NULL,
`job_params` longtext NULL,
`lifecycle` varchar(255) NULL DEFAULT NULL,
`log_config` varchar(255) NULL DEFAULT NULL,
`max_instance_num` int(0) NULL DEFAULT NULL,
`max_worker_count` int(0) NULL DEFAULT NULL,
`min_cpu_cores` double NOT NULL,
`min_disk_space` double NOT NULL,
`min_memory_space` double NOT NULL,
`next_trigger_time` bigint(0) NULL DEFAULT NULL,
`notify_user_ids` varchar(255) NULL DEFAULT NULL,
`processor_info` varchar(255) NULL DEFAULT NULL,
`processor_type` int(0) NULL DEFAULT NULL,
`status` int(0) NULL DEFAULT NULL,
`tag` varchar(255) NULL DEFAULT NULL,
`task_retry_num` int(0) NULL DEFAULT NULL,
`time_expression` varchar(255) NULL DEFAULT NULL,
`time_expression_type` int(0) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx01_job_info`(`app_id`, `status`, `time_expression_type`, `next_trigger_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 ROW_FORMAT = Dynamic;
CREATE TABLE `er_group_config`
(
`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 '组名称',
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '组描述',
`token` varchar(64) NOT NULL DEFAULT 'ER_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT' COMMENT 'token',
`group_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '组状态 0、未启用 1、启用',
`version` int(11) NOT NULL COMMENT '版本号',
`group_partition` int(11) NOT NULL COMMENT '分区',
`id_generator_mode` tinyint(4) NOT NULL DEFAULT '1' COMMENT '唯一id生成模式 默认号段模式',
`init_scene` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否初始化场景 0:否 1:是',
`bucket_index` int(11) 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_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='组配置'
;
-- ----------------------------
-- Records of pj_job_info
-- ----------------------------
INSERT INTO `pj_job_info` VALUES (1, '{\"alertThreshold\":0,\"silenceWindowLen\":0,\"statisticWindowLen\":0}', 1, 5, '', 2, 1, NULL, '2023-06-02 15:01:27.717000', '2023-07-04 17:22:12.374000', 1, 0, '', '单机处理器执行测试', NULL, '{}', '{\"type\":1}', 0, 0, 0, 0, 0, NULL, NULL, 'org.dromara.job.processors.StandaloneProcessorDemo', 1, 2, NULL, 1, '30000', 3);
INSERT INTO `pj_job_info` VALUES (2, '{\"alertThreshold\":0,\"silenceWindowLen\":0,\"statisticWindowLen\":0}', 1, 5, '', 1, 2, NULL, '2023-06-02 15:04:45.342000', '2023-07-04 17:22:12.816000', 0, 0, NULL, '广播处理器测试', NULL, '{}', '{\"type\":1}', 0, 0, 0, 0, 0, NULL, NULL, 'org.dromara.job.processors.BroadcastProcessorDemo', 1, 2, NULL, 1, '30000', 3);
INSERT INTO `pj_job_info` VALUES (3, '{\"alertThreshold\":0,\"silenceWindowLen\":0,\"statisticWindowLen\":0}', 1, 5, '', 1, 4, NULL, '2023-06-02 15:13:23.519000', '2023-06-02 16:03:22.421000', 0, 0, NULL, 'Map处理器测试', NULL, '{}', '{\"type\":1}', 0, 0, 0, 0, 0, NULL, NULL, 'org.dromara.job.processors.MapProcessorDemo', 1, 2, NULL, 1, '1000', 3);
INSERT INTO `pj_job_info` VALUES (4, '{\"alertThreshold\":0,\"silenceWindowLen\":0,\"statisticWindowLen\":0}', 1, 5, '', 1, 3, NULL, '2023-06-02 15:45:25.896000', '2023-06-02 16:03:23.125000', 0, 0, NULL, 'MapReduce处理器测试', NULL, '{}', '{\"type\":1}', 0, 0, 0, 0, 0, NULL, NULL, 'org.dromara.job.processors.MapReduceProcessorDemo', 1, 2, NULL, 1, '1000', 3);
INSERT INTO `er_group_config` VALUES (1, 'dev', 'ruoyi_group', '', 'ER_cKqBTPzCsWA3VyuCfFoccmuIEGXjr5KT', 1, 1, 0, 1, 1, 4, now(), now());
-- ----------------------------
-- Table structure for pj_oms_lock
-- ----------------------------
DROP TABLE IF EXISTS `pj_oms_lock`;
CREATE TABLE `pj_oms_lock` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`gmt_create` datetime(6) NULL DEFAULT NULL,
`gmt_modified` datetime(6) NULL DEFAULT NULL,
`lock_name` varchar(255) NULL DEFAULT NULL,
`max_lock_time` bigint(0) NULL DEFAULT NULL,
`ownerip` varchar(255) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uidx01_oms_lock`(`lock_name`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for pj_server_info
-- ----------------------------
DROP TABLE IF EXISTS `pj_server_info`;
CREATE TABLE `pj_server_info` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`gmt_create` datetime(6) NULL DEFAULT NULL,
`gmt_modified` datetime(6) NULL DEFAULT NULL,
`ip` varchar(255) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uidx01_server_info`(`ip`) USING BTREE,
INDEX `idx01_server_info`(`gmt_modified`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 ROW_FORMAT = Dynamic;
CREATE TABLE `er_notify_config`
(
`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 '组名称',
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
`notify_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知状态 0、未启用 1、启用',
`notify_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知类型 1、钉钉 2、邮件 3、企业微信',
`notify_attribute` varchar(512) NOT NULL COMMENT '配置属性',
`notify_threshold` int(11) NOT NULL DEFAULT '0' COMMENT '通知阈值',
`notify_scene` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知场景',
`rate_limiter_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '限流状态 0、未启用 1、启用',
`rate_limiter_threshold` int(11) NOT NULL DEFAULT '0' 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 '修改时间',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='通知配置'
;
-- ----------------------------
-- Table structure for pj_user_info
-- ----------------------------
DROP TABLE IF EXISTS `pj_user_info`;
CREATE TABLE `pj_user_info` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`email` varchar(255) NULL DEFAULT NULL,
`extra` varchar(255) NULL DEFAULT NULL,
`gmt_create` datetime(6) NULL DEFAULT NULL,
`gmt_modified` datetime(6) NULL DEFAULT NULL,
`password` varchar(255) NULL DEFAULT NULL,
`phone` varchar(255) NULL DEFAULT NULL,
`username` varchar(255) NULL DEFAULT NULL,
`web_hook` varchar(255) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `uidx01_user_info`(`username`) USING BTREE,
INDEX `uidx02_user_info`(`email`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 ROW_FORMAT = Dynamic;
CREATE TABLE `er_retry_dead_letter_0`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' 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 DEFAULT '' COMMENT '执行器名称',
`args_str` text NOT NULL COMMENT '执行方法参数',
`ext_attrs` text NOT NULL COMMENT '扩展字段',
`task_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '任务类型 1、重试数据 2、回调数据',
`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`),
KEY `idx_biz_no` (`biz_no`),
KEY `idx_create_dt` (`create_dt`),
UNIQUE KEY `uk_namespace_id_group_name_unique_id` (`namespace_id`, `group_name`, `unique_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='死信队列表'
;
-- ----------------------------
-- Table structure for pj_workflow_info
-- ----------------------------
DROP TABLE IF EXISTS `pj_workflow_info`;
CREATE TABLE `pj_workflow_info` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`app_id` bigint(0) NULL DEFAULT NULL,
`extra` varchar(255) NULL DEFAULT NULL,
`gmt_create` datetime(6) NULL DEFAULT NULL,
`gmt_modified` datetime(6) NULL DEFAULT NULL,
`lifecycle` varchar(255) NULL DEFAULT NULL,
`max_wf_instance_num` int(0) NULL DEFAULT NULL,
`next_trigger_time` bigint(0) NULL DEFAULT NULL,
`notify_user_ids` varchar(255) NULL DEFAULT NULL,
`pedag` longtext NULL,
`status` int(0) NULL DEFAULT NULL,
`time_expression` varchar(255) NULL DEFAULT NULL,
`time_expression_type` int(0) NULL DEFAULT NULL,
`wf_description` varchar(255) NULL DEFAULT NULL,
`wf_name` varchar(255) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx01_workflow_info`(`app_id`, `status`, `time_expression_type`, `next_trigger_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 ROW_FORMAT = Dynamic;
CREATE TABLE `er_retry_task_0`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' 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 DEFAULT '' COMMENT '执行器名称',
`args_str` text NOT NULL COMMENT '执行方法参数',
`ext_attrs` text NOT NULL COMMENT '扩展字段',
`next_trigger_at` datetime NOT NULL 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`),
KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`),
KEY `idx_namespace_id_group_name_task_type` (`namespace_id`, `group_name`, `task_type`),
KEY `idx_namespace_id_group_name_retry_status` (`namespace_id`, `group_name`, `retry_status`),
KEY `idx_idempotent_id` (`idempotent_id`),
KEY `idx_biz_no` (`biz_no`),
KEY `idx_create_dt` (`create_dt`),
UNIQUE KEY `uk_name_unique_id` (`namespace_id`, `group_name`, `unique_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务表'
;
-- ----------------------------
-- Table structure for pj_workflow_instance_info
-- ----------------------------
DROP TABLE IF EXISTS `pj_workflow_instance_info`;
CREATE TABLE `pj_workflow_instance_info` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`actual_trigger_time` bigint(0) NULL DEFAULT NULL,
`app_id` bigint(0) NULL DEFAULT NULL,
`dag` longtext NULL,
`expected_trigger_time` bigint(0) NULL DEFAULT NULL,
`finished_time` bigint(0) NULL DEFAULT NULL,
`gmt_create` datetime(6) NULL DEFAULT NULL,
`gmt_modified` datetime(6) NULL DEFAULT NULL,
`parent_wf_instance_id` bigint(0) NULL DEFAULT NULL,
`result` longtext NULL,
`status` int(0) NULL DEFAULT NULL,
`wf_context` longtext NULL,
`wf_init_params` longtext NULL,
`wf_instance_id` bigint(0) NULL DEFAULT NULL,
`workflow_id` bigint(0) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `uidx01_wf_instance`(`wf_instance_id`) USING BTREE,
INDEX `idx01_wf_instance`(`workflow_id`, `status`, `app_id`, `expected_trigger_time`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 ROW_FORMAT = Dynamic;
CREATE TABLE `er_retry_task_log`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' 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 DEFAULT '' COMMENT '执行器名称',
`args_str` text NOT NULL COMMENT '执行方法参数',
`ext_attrs` text NOT NULL 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`),
KEY `idx_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`),
KEY `idx_retry_status` (`retry_status`),
KEY `idx_idempotent_id` (`idempotent_id`),
KEY `idx_unique_id` (`unique_id`),
KEY `idx_biz_no` (`biz_no`),
KEY `idx_create_dt` (`create_dt`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务日志基础信息表'
;
-- ----------------------------
-- Table structure for pj_workflow_node_info
-- ----------------------------
DROP TABLE IF EXISTS `pj_workflow_node_info`;
CREATE TABLE `pj_workflow_node_info` (
`id` bigint(0) NOT NULL AUTO_INCREMENT,
`app_id` bigint(0) NOT NULL,
`enable` bit(1) NOT NULL,
`extra` longtext NULL,
`gmt_create` datetime(6) NULL,
`gmt_modified` datetime(6) NULL,
`job_id` bigint(0) NULL DEFAULT NULL,
`node_name` varchar(255) NULL DEFAULT NULL,
`node_params` longtext NULL,
`skip_when_failed` bit(1) NOT NULL,
`type` int(0) NULL DEFAULT NULL,
`workflow_id` bigint(0) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx01_workflow_node_info`(`workflow_id`, `gmt_create`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 ROW_FORMAT = Dynamic;
CREATE TABLE `er_retry_task_log_message`
(
`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 '组名称',
`unique_id` varchar(64) NOT NULL COMMENT '同组下id唯一',
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`message` longtext NOT NULL COMMENT '异常信息',
`log_num` int(11) NOT NULL DEFAULT 1 COMMENT '日志数量',
`real_time` bigint(13) NOT NULL DEFAULT 0 COMMENT '上报时间',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `unique_id`),
KEY `idx_create_dt` (`create_dt`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务调度日志信息记录表'
;
CREATE TABLE `er_scene_config`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`scene_name` varchar(64) NOT NULL COMMENT '场景名称',
`group_name` varchar(64) NOT NULL COMMENT '组名称',
`scene_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '组状态 0、未启用 1、启用',
`max_retry_count` int(11) NOT NULL DEFAULT '5' COMMENT '最大重试次数',
`back_off` tinyint(4) NOT NULL DEFAULT '1' COMMENT '1、默认等级 2、固定间隔时间 3、CRON 表达式',
`trigger_interval` varchar(16) NOT NULL DEFAULT '' COMMENT '间隔时长',
`deadline_request` bigint(20) unsigned NOT NULL DEFAULT '60000' COMMENT 'Deadline Request 调用链超时 单位毫秒',
`executor_timeout` int(11) unsigned NOT NULL DEFAULT '5' COMMENT '任务执行超时时间,单位秒',
`route_key` tinyint(4) NOT NULL DEFAULT '4' 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 '修改时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_namespace_id_group_name_scene_name` (`namespace_id`, `group_name`, `scene_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='场景配置'
;
CREATE TABLE `er_server_node`
(
`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 '组名称',
`host_id` varchar(64) NOT NULL COMMENT '主机id',
`host_ip` varchar(64) NOT NULL COMMENT '机器ip',
`context_path` varchar(256) NOT NULL DEFAULT '/' COMMENT '客户端上下文路径 server.servlet.context-path',
`host_port` int(16) NOT NULL COMMENT '机器端口',
`expire_at` datetime NOT NULL COMMENT '过期时间',
`node_type` tinyint(4) NOT NULL COMMENT '节点类型 1、客户端 2、是服务端',
`ext_attrs` varchar(256) 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`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`),
KEY `idx_expire_at_node_type` (`expire_at`, `node_type`),
UNIQUE KEY `uk_host_id_host_ip` (`host_id`, `host_ip`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='服务器节点'
;
CREATE TABLE `er_distributed_lock`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`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 (`id`),
UNIQUE KEY `uk_name` (`name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='锁定表'
;
CREATE TABLE `er_system_user`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(64) NOT NULL COMMENT '账号',
`password` varchar(128) NOT NULL COMMENT '密码',
`role` tinyint(4) NOT NULL DEFAULT '0' 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_username` (`username`) USING BTREE
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='系统用户表';
-- pwd: admin
INSERT INTO `er_system_user` VALUES (1, 'admin', '465c194afb65670f38322df087f0a9bb225cc257e43eb4ac5a0c98ef5b3173ac', 2, now(), now());
CREATE TABLE `er_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 DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`system_user_id` bigint(20) 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`),
UNIQUE KEY `uk_namespace_id_group_name_system_user_id` (`namespace_id`, `group_name`, `system_user_id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='系统用户权限表';
CREATE TABLE `er_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 `er_job`
(
`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 '组名称',
`job_name` varchar(64) NOT NULL COMMENT '名称',
`args_str` text DEFAULT NULL COMMENT '执行方法参数',
`args_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '参数类型 ',
`next_trigger_at` bigint(13) NOT NULL COMMENT '下次触发时间',
`job_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '任务状态 0、关闭、1、开启',
`task_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '任务类型 1、集群 2、广播 3、切片',
`route_key` tinyint(4) NOT NULL DEFAULT '4' COMMENT '路由策略',
`executor_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '执行器类型',
`executor_info` varchar(255) DEFAULT NULL COMMENT '执行器名称',
`trigger_type` tinyint(4) NOT NULL COMMENT '触发类型 1.CRON 表达式 2. 固定时间',
`trigger_interval` varchar(255) NOT NULL COMMENT '间隔时长',
`block_strategy` tinyint(4) NOT NULL DEFAULT '1' COMMENT '阻塞策略 1、丢弃 2、覆盖 3、并行',
`executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任务执行超时时间,单位秒',
`max_retry_times` int(11) NOT NULL DEFAULT '0' COMMENT '最大重试次数',
`parallel_num` int(11) NOT NULL DEFAULT '1' COMMENT '并行数',
`retry_interval` int(11) NOT NULL DEFAULT '0' COMMENT '重试间隔(s)',
`bucket_index` int(11) NOT NULL DEFAULT '0' COMMENT 'bucket',
`resident` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否是常驻任务',
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述',
`ext_attrs` varchar(256) 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 '修改时间',
`deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1、删除',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`),
KEY `idx_job_status_bucket_index` (`job_status`, `bucket_index`),
KEY `idx_create_dt` (`create_dt`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务信息';
INSERT INTO `er_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, '', '', now(), now(), 0);
CREATE TABLE `er_job_log_message`
(
`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 '组名称',
`job_id` bigint(20) NOT NULL COMMENT '任务信息id',
`task_batch_id` bigint(20) NOT NULL COMMENT '任务批次id',
`task_id` bigint(20) NOT NULL COMMENT '调度任务id',
`message` longtext NOT NULL COMMENT '调度信息',
`log_num` int(11) NOT NULL DEFAULT 1 COMMENT '日志数量',
`real_time` bigint(13) NOT NULL DEFAULT 0 COMMENT '上报时间',
`create_dt` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`ext_attrs` varchar(256) NULL default '' COMMENT '扩展字段',
PRIMARY KEY (`id`),
KEY `idx_task_batch_id_task_id` (`task_batch_id`, `task_id`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='调度日志';
CREATE TABLE `er_job_task`
(
`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 '组名称',
`job_id` bigint(20) NOT NULL COMMENT '任务信息id',
`task_batch_id` bigint(20) NOT NULL COMMENT '调度任务id',
`parent_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '父执行器id',
`task_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '执行的状态 0、失败 1、成功',
`retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '重试次数',
`client_info` varchar(128) DEFAULT NULL COMMENT '客户端地址 clientId#ip:port',
`result_message` text NOT NULL COMMENT '执行结果',
`args_str` text DEFAULT NULL COMMENT '执行方法参数',
`args_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '参数类型 ',
`ext_attrs` varchar(256) 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`),
KEY `idx_task_batch_id_task_status` (`task_batch_id`, `task_status`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务实例';
CREATE TABLE `er_job_task_batch`
(
`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 '组名称',
`job_id` bigint(20) NOT NULL COMMENT '任务id',
`workflow_node_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '工作流节点id',
`parent_workflow_node_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '工作流任务父批次id',
`workflow_task_batch_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '工作流任务批次id',
`task_batch_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '任务批次状态 0、失败 1、成功',
`operation_reason` tinyint(4) NOT NULL DEFAULT '0' COMMENT '操作原因',
`execution_at` bigint(13) NOT NULL DEFAULT '0' COMMENT '任务执行时间',
`system_task_type` tinyint(4) NOT NULL DEFAULT '3' COMMENT '任务类型 3、JOB任务 4、WORKFLOW任务',
`parent_id` varchar(64) 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 '修改时间',
`deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1、删除',
`ext_attrs` varchar(256) NULL default '' COMMENT '扩展字段',
PRIMARY KEY (`id`),
KEY `idx_job_id_task_batch_status` (`job_id`, `task_batch_status`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`),
KEY `idx_workflow_task_batch_id_workflow_node_id` (`workflow_task_batch_id`, `workflow_node_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务批次';
CREATE TABLE `er_job_notify_config`
(
`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 '组名称',
`job_id` bigint(20) NOT NULL COMMENT '任务id',
`notify_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知状态 0、未启用 1、启用',
`notify_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知类型 1、钉钉 2、邮件 3、企业微信',
`notify_attribute` varchar(512) NOT NULL COMMENT '配置属性',
`notify_threshold` int(11) NOT NULL DEFAULT '0' COMMENT '通知阈值',
`notify_scene` tinyint(4) NOT NULL DEFAULT '0' COMMENT '通知场景',
`rate_limiter_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '限流状态 0、未启用 1、启用',
`rate_limiter_threshold` int(11) NOT NULL DEFAULT '0' 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 '修改时间',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name_job_id` (`namespace_id`, `group_name`, job_id)
) ENGINE = InnoDB
AUTO_INCREMENT = 4
DEFAULT CHARSET = utf8mb4 COMMENT ='job通知配置';
CREATE TABLE `er_job_summary`
(
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`group_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '组名称',
`business_id` bigint NOT NULL COMMENT '业务id (job_id或workflow_id)',
`system_task_type` tinyint(4) NOT NULL DEFAULT '3' COMMENT '任务类型 3、JOB任务 4、WORKFLOW任务',
`trigger_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '统计时间',
`success_num` int NOT NULL DEFAULT '0' COMMENT '执行成功-日志数量',
`fail_num` int NOT NULL DEFAULT '0' COMMENT '执行失败-日志数量',
`fail_reason` varchar(512) NOT NULL DEFAULT '' COMMENT '失败原因',
`stop_num` int NOT NULL DEFAULT '0' COMMENT '执行失败-日志数量',
`stop_reason` varchar(512) NOT NULL DEFAULT '' COMMENT '失败原因',
`cancel_num` int NOT NULL DEFAULT '0' COMMENT '执行失败-日志数量',
`cancel_reason` varchar(512) 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 '修改时间',
PRIMARY KEY (`id`),
KEY `idx_namespace_id_group_name_business_id` (`namespace_id`, `group_name`, business_id),
UNIQUE KEY `uk_trigger_at_system_task_type_business_id` (`trigger_at`, `system_task_type`, `business_id`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4 COMMENT ='DashBoard_Job';
CREATE TABLE `er_retry_summary`
(
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`group_name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '组名称',
`scene_name` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '场景名称',
`trigger_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '统计时间',
`running_num` int NOT NULL DEFAULT '0' COMMENT '重试中-日志数量',
`finish_num` int NOT NULL DEFAULT '0' COMMENT '重试完成-日志数量',
`max_count_num` int NOT NULL DEFAULT '0' COMMENT '重试到达最大次数-日志数量',
`suspend_num` int 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`),
KEY `idx_trigger_at` (`trigger_at`),
UNIQUE KEY `uk_scene_name_trigger_at` (`namespace_id`, `group_name`, `scene_name`, `trigger_at`) USING BTREE
) ENGINE = InnoDB
AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4 COMMENT ='DashBoard_Retry';
CREATE TABLE `er_workflow`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`workflow_name` varchar(64) NOT NULL COMMENT '工作流名称',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`group_name` varchar(64) NOT NULL COMMENT '组名称',
`workflow_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '工作流状态 0、关闭、1、开启',
`trigger_type` tinyint(4) NOT NULL COMMENT '触发类型 1.CRON 表达式 2. 固定时间',
`trigger_interval` varchar(255) NOT NULL COMMENT '间隔时长',
`next_trigger_at` bigint(13) NOT NULL COMMENT '下次触发时间',
`block_strategy` tinyint(4) NOT NULL DEFAULT '1' COMMENT '阻塞策略 1、丢弃 2、覆盖 3、并行',
`executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任务执行超时时间,单位秒',
`description` varchar(256) NOT NULL DEFAULT '' COMMENT '描述',
`flow_info` text DEFAULT NULL COMMENT '流程信息',
`bucket_index` int(11) NOT NULL DEFAULT '0' COMMENT 'bucket',
`version` int(11) NOT 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、删除',
`ext_attrs` varchar(256) NULL default '' COMMENT '扩展字段',
PRIMARY KEY (`id`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='工作流';
CREATE TABLE `er_workflow_node`
(
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`namespace_id` varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a' COMMENT '命名空间id',
`node_name` varchar(64) NOT NULL COMMENT '节点名称',
`group_name` varchar(64) NOT NULL COMMENT '组名称',
`job_id` bigint(20) NOT NULL COMMENT '任务信息id',
`workflow_id` bigint(20) NOT NULL COMMENT '工作流ID',
`node_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '1、任务节点 2、条件节点',
`expression_type` tinyint(4) NOT NULL DEFAULT 0 COMMENT '1、SpEl、2、Aviator 3、QL',
`fail_strategy` tinyint(4) NOT NULL DEFAULT 1 COMMENT '失败策略 1、跳过 2、阻塞',
`workflow_node_status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '工作流节点状态 0、关闭、1、开启',
`priority_level` int(11) NOT NULL DEFAULT 1 COMMENT '优先级',
`node_info` text DEFAULT NULL COMMENT '节点信息 ',
`version` int(11) NOT 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、删除',
`ext_attrs` varchar(256) NULL default '' COMMENT '扩展字段',
PRIMARY KEY (`id`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='工作流节点';
CREATE TABLE `er_workflow_task_batch`
(
`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 '组名称',
`workflow_id` bigint(20) NOT NULL COMMENT '工作流任务id',
`task_batch_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '任务批次状态 0、失败 1、成功',
`operation_reason` tinyint(4) NOT NULL DEFAULT '0' COMMENT '操作原因',
`flow_info` text DEFAULT NULL COMMENT '流程信息',
`execution_at` bigint(13) 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 '修改时间',
`deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除 1、删除',
`ext_attrs` varchar(256) NULL default '' COMMENT '扩展字段',
PRIMARY KEY (`id`),
KEY `idx_job_id_task_batch_status` (`workflow_id`, `task_batch_status`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='工作流批次';

Loading…
Cancel
Save