Merge branch '1.2.0-beta3' into client-jdk8
# Conflicts: # pom.xml
This commit is contained in:
commit
8a5278417c
21
pom.xml
21
pom.xml
@ -21,16 +21,19 @@
|
|||||||
<java.version>1.8</java.version>
|
<java.version>1.8</java.version>
|
||||||
<maven.compiler.source>1.8</maven.compiler.source>
|
<maven.compiler.source>1.8</maven.compiler.source>
|
||||||
<maven.compiler.target>1.8</maven.compiler.target>
|
<maven.compiler.target>1.8</maven.compiler.target>
|
||||||
<revision>1.2.0-jdk8-beta2.1</revision>
|
<revision>1.2.0-jdk8-beta3</revision>
|
||||||
<netty-all.version>4.1.94.Final</netty-all.version>
|
<skipTests>true</skipTests>
|
||||||
<hutool-all.version>5.8.25</hutool-all.version>
|
|
||||||
<mybatis-plus.version>3.5.7</mybatis-plus.version>
|
<netty-all.version>4.1.114.Final</netty-all.version>
|
||||||
|
<hutool-all.version>5.8.32</hutool-all.version>
|
||||||
|
<mybatis-plus.version>3.5.9</mybatis-plus.version>
|
||||||
<guava-retrying.version>2.0.0</guava-retrying.version>
|
<guava-retrying.version>2.0.0</guava-retrying.version>
|
||||||
|
<jboss-logging.version>3.6.1.Final</jboss-logging.version>
|
||||||
<tinylog.version>1.3.6</tinylog.version>
|
<tinylog.version>1.3.6</tinylog.version>
|
||||||
<tinylog2.version>2.6.2</tinylog2.version>
|
<tinylog2.version>2.6.2</tinylog2.version>
|
||||||
<logtube.version>0.45.0</logtube.version>
|
<logtube.version>0.45.0</logtube.version>
|
||||||
<log4j.version>1.2.17</log4j.version>
|
<log4j.version>1.2.17</log4j.version>
|
||||||
<commons-logging.version>1.2</commons-logging.version>
|
<commons-logging.version>1.3.4</commons-logging.version>
|
||||||
<jakarta-validation.version>2.0.2</jakarta-validation.version>
|
<jakarta-validation.version>2.0.2</jakarta-validation.version>
|
||||||
<jakarta-mail-api.version>2.1.3</jakarta-mail-api.version>
|
<jakarta-mail-api.version>2.1.3</jakarta-mail-api.version>
|
||||||
<jakarta-mail.version>2.0.3</jakarta-mail.version>
|
<jakarta-mail.version>2.0.3</jakarta-mail.version>
|
||||||
@ -148,6 +151,12 @@
|
|||||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||||
<version>${mybatis-plus.version}</version>
|
<version>${mybatis-plus.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<!-- >= 3.5.9 PaginationInnerInterceptor 需要单独引入 -->
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-jsqlparser</artifactId>
|
||||||
|
<version>${mybatis-plus.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>jakarta.validation</groupId>
|
<groupId>jakarta.validation</groupId>
|
||||||
<artifactId>jakarta.validation-api</artifactId>
|
<artifactId>jakarta.validation-api</artifactId>
|
||||||
@ -181,7 +190,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jboss.logging</groupId>
|
<groupId>org.jboss.logging</groupId>
|
||||||
<artifactId>jboss-logging</artifactId>
|
<artifactId>jboss-logging</artifactId>
|
||||||
<version>3.4.3.Final</version>
|
<version>${jboss-logging.version}</version>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -19,7 +19,6 @@ import com.aizuda.snailjob.client.common.log.support.SnailJobLogManager;
|
|||||||
import com.aizuda.snailjob.client.common.rpc.client.NettyChannel;
|
import com.aizuda.snailjob.client.common.rpc.client.NettyChannel;
|
||||||
import com.aizuda.snailjob.common.log.constant.LogFieldConstants;
|
import com.aizuda.snailjob.common.log.constant.LogFieldConstants;
|
||||||
import com.aizuda.snailjob.common.log.dto.LogContentDTO;
|
import com.aizuda.snailjob.common.log.dto.LogContentDTO;
|
||||||
import org.apache.log4j.MDC;
|
|
||||||
import org.apache.logging.log4j.core.Filter;
|
import org.apache.logging.log4j.core.Filter;
|
||||||
import org.apache.logging.log4j.core.Layout;
|
import org.apache.logging.log4j.core.Layout;
|
||||||
import org.apache.logging.log4j.core.LogEvent;
|
import org.apache.logging.log4j.core.LogEvent;
|
||||||
@ -30,6 +29,7 @@ import org.apache.logging.log4j.core.config.plugins.PluginElement;
|
|||||||
import org.apache.logging.log4j.core.config.plugins.PluginFactory;
|
import org.apache.logging.log4j.core.config.plugins.PluginFactory;
|
||||||
import org.apache.logging.log4j.core.util.Booleans;
|
import org.apache.logging.log4j.core.util.Booleans;
|
||||||
import org.apache.logging.log4j.core.util.Throwables;
|
import org.apache.logging.log4j.core.util.Throwables;
|
||||||
|
import org.slf4j.MDC;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
@ -11,9 +11,10 @@ import com.aizuda.snailjob.common.log.SnailJobLog;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Base64;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
|
||||||
public abstract class AbstractHttpExecutor {
|
public abstract class AbstractHttpExecutor {
|
||||||
@ -27,6 +28,7 @@ public abstract class AbstractHttpExecutor {
|
|||||||
private static final String HTTP = "http";
|
private static final String HTTP = "http";
|
||||||
private static final String HTTP_PREFIX = "http://";
|
private static final String HTTP_PREFIX = "http://";
|
||||||
private static final int HTTP_SUCCESS_CODE = 200;
|
private static final int HTTP_SUCCESS_CODE = 200;
|
||||||
|
private static final Pattern pattern = Pattern.compile("[\\u4e00-\\u9fa5]");
|
||||||
|
|
||||||
public ExecuteResult process(HttpParams httpParams) {
|
public ExecuteResult process(HttpParams httpParams) {
|
||||||
if (httpParams == null) {
|
if (httpParams == null) {
|
||||||
@ -123,6 +125,11 @@ public abstract class AbstractHttpExecutor {
|
|||||||
if ( Objects.nonNull(httpParams.getWfContext())) {
|
if ( Objects.nonNull(httpParams.getWfContext())) {
|
||||||
httpParams.getWfContext().forEach((key, value) -> {
|
httpParams.getWfContext().forEach((key, value) -> {
|
||||||
String headerValue = (value instanceof String) ? (String) value : JsonUtil.toJsonString(value);
|
String headerValue = (value instanceof String) ? (String) value : JsonUtil.toJsonString(value);
|
||||||
|
// 正则表达式匹配中文字符
|
||||||
|
if (pattern.matcher(headerValue).find()) {
|
||||||
|
// 如果包含中文字符,则进行Base64编码
|
||||||
|
headerValue = Base64.getEncoder().encodeToString(headerValue.getBytes());
|
||||||
|
}
|
||||||
request.header(key, headerValue);
|
request.header(key, headerValue);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.alibaba</groupId>
|
<groupId>com.alibaba</groupId>
|
||||||
<artifactId>QLExpress</artifactId>
|
<artifactId>QLExpress</artifactId>
|
||||||
<version>3.3.1</version>
|
<version>3.3.4</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
@ -61,7 +61,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.alibaba</groupId>
|
<groupId>com.alibaba</groupId>
|
||||||
<artifactId>QLExpress</artifactId>
|
<artifactId>QLExpress</artifactId>
|
||||||
<version>3.3.1</version>
|
<version>3.3.4</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
<optional>true</optional>
|
<optional>true</optional>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
@ -4,11 +4,11 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.aizuda.snailjob.common.log.constant.LogFieldConstants;
|
import com.aizuda.snailjob.common.log.constant.LogFieldConstants;
|
||||||
import com.aizuda.snailjob.common.log.dialect.AbstractLog;
|
import com.aizuda.snailjob.common.log.dialect.AbstractLog;
|
||||||
import com.aizuda.snailjob.common.log.factory.LogFactory;
|
import com.aizuda.snailjob.common.log.factory.LogFactory;
|
||||||
import org.apache.log4j.MDC;
|
|
||||||
import org.apache.logging.log4j.Level;
|
import org.apache.logging.log4j.Level;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.apache.logging.log4j.spi.AbstractLogger;
|
import org.apache.logging.log4j.spi.AbstractLogger;
|
||||||
|
import org.slf4j.MDC;
|
||||||
|
|
||||||
//import java.io.Serial;
|
//import java.io.Serial;
|
||||||
|
|
||||||
|
@ -32,6 +32,10 @@
|
|||||||
<groupId>com.baomidou</groupId>
|
<groupId>com.baomidou</groupId>
|
||||||
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
|
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-jsqlparser</artifactId>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-jdbc</artifactId>
|
<artifactId>spring-boot-starter-jdbc</artifactId>
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>17</java.version>
|
<java.version>17</java.version>
|
||||||
<postgresql.version>42.2.24</postgresql.version>
|
<postgresql.version>42.7.2</postgresql.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
@ -76,7 +76,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.alibaba</groupId>
|
<groupId>com.alibaba</groupId>
|
||||||
<artifactId>QLExpress</artifactId>
|
<artifactId>QLExpress</artifactId>
|
||||||
<version>3.3.1</version>
|
<version>3.3.4</version>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
<groupId>commons-beanutils</groupId>
|
<groupId>commons-beanutils</groupId>
|
||||||
|
@ -20,8 +20,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.transaction.TransactionStatus;
|
import org.springframework.transaction.TransactionStatus;
|
||||||
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
|
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
|
||||||
@ -43,8 +41,6 @@ import java.util.List;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
||||||
|
|
||||||
// last clean log time
|
|
||||||
private static Long lastCleanLogTime = 0L;
|
|
||||||
private final SystemProperties systemProperties;
|
private final SystemProperties systemProperties;
|
||||||
private final JobTaskBatchMapper jobTaskBatchMapper;
|
private final JobTaskBatchMapper jobTaskBatchMapper;
|
||||||
private final JobTaskMapper jobTaskMapper;
|
private final JobTaskMapper jobTaskMapper;
|
||||||
@ -58,7 +54,7 @@ public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String lockAtMost() {
|
public String lockAtMost() {
|
||||||
return "PT1H";
|
return "PT4H";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -69,8 +65,9 @@ public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
@Override
|
@Override
|
||||||
protected void doExecute() {
|
protected void doExecute() {
|
||||||
try {
|
try {
|
||||||
// 清楚日志默认保存天数大于零、最少保留最近一天的日志数据
|
// 清除日志默认保存天数大于零、最少保留最近一天的日志数据
|
||||||
if (systemProperties.getLogStorage() <= 0 || System.currentTimeMillis() - lastCleanLogTime < 24 * 60 * 60 * 1000) {
|
if (systemProperties.getLogStorage() <= 1) {
|
||||||
|
SnailJobLog.LOCAL.error("job clear log storage error", systemProperties.getLogStorage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// clean job log
|
// clean job log
|
||||||
@ -82,9 +79,6 @@ public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
SnailJobLog.LOCAL.debug("Job clear success total:[{}]", total);
|
SnailJobLog.LOCAL.debug("Job clear success total:[{}]", total);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
SnailJobLog.LOCAL.error("job clear log error", e);
|
SnailJobLog.LOCAL.error("job clear log error", e);
|
||||||
} finally {
|
|
||||||
// update clean time
|
|
||||||
lastCleanLogTime = System.currentTimeMillis();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -146,7 +140,7 @@ public class JobClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void start() {
|
||||||
taskScheduler.scheduleAtFixedRate(this::execute, Duration.parse("PT1H"));
|
taskScheduler.scheduleAtFixedRate(this::execute, Duration.parse("PT4H"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -53,8 +53,6 @@ public class JobLogMergeSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
private final JobLogMessageMapper jobLogMessageMapper;
|
private final JobLogMessageMapper jobLogMessageMapper;
|
||||||
private final TransactionTemplate transactionTemplate;
|
private final TransactionTemplate transactionTemplate;
|
||||||
|
|
||||||
// last merge log time
|
|
||||||
private static Long lastMergeLogTime = 0L;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String lockName() {
|
public String lockName() {
|
||||||
@ -74,10 +72,6 @@ public class JobLogMergeSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
@Override
|
@Override
|
||||||
protected void doExecute() {
|
protected void doExecute() {
|
||||||
try {
|
try {
|
||||||
// 合并日志数据最少保留最近一天的日志数据
|
|
||||||
if (System.currentTimeMillis() - lastMergeLogTime < 24 * 60 * 60 * 1000) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// merge job log
|
// merge job log
|
||||||
long total;
|
long total;
|
||||||
LocalDateTime endTime = LocalDateTime.now().minusDays(systemProperties.getMergeLogDays());
|
LocalDateTime endTime = LocalDateTime.now().minusDays(systemProperties.getMergeLogDays());
|
||||||
@ -87,9 +81,6 @@ public class JobLogMergeSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
SnailJobLog.LOCAL.debug("job merge success total:[{}]", total);
|
SnailJobLog.LOCAL.debug("job merge success total:[{}]", total);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
SnailJobLog.LOCAL.error("job merge log error", e);
|
SnailJobLog.LOCAL.error("job merge log error", e);
|
||||||
} finally {
|
|
||||||
// update merge time
|
|
||||||
lastMergeLogTime = System.currentTimeMillis();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,7 +183,7 @@ public class JobLogMergeSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void start() {
|
||||||
taskScheduler.scheduleAtFixedRate(this::execute, Duration.parse("PT1H"));
|
taskScheduler.scheduleAtFixedRate(this::execute, Duration.parse("PT1M"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -38,8 +38,6 @@ import java.util.List;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class ClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
public class ClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
||||||
|
|
||||||
// last clean log time
|
|
||||||
private static Long lastCleanLogTime = 0L;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RetryTaskLogMapper retryTaskLogMapper;
|
private RetryTaskLogMapper retryTaskLogMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -56,7 +54,7 @@ public class ClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String lockAtMost() {
|
public String lockAtMost() {
|
||||||
return "PT1H";
|
return "PT4H";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -67,7 +65,9 @@ public class ClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
@Override
|
@Override
|
||||||
protected void doExecute() {
|
protected void doExecute() {
|
||||||
try {
|
try {
|
||||||
if (systemProperties.getLogStorage() <= 0 || System.currentTimeMillis() - lastCleanLogTime < 24 * 60 * 60 * 1000) {
|
// 清除日志默认保存天数大于零、最少保留最近一天的日志数据
|
||||||
|
if (systemProperties.getLogStorage() <= 1) {
|
||||||
|
SnailJobLog.LOCAL.error("retry clear log storage error", systemProperties.getLogStorage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// clean retry log
|
// clean retry log
|
||||||
@ -78,9 +78,6 @@ public class ClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
SnailJobLog.LOCAL.debug("Retry clear success total:[{}]", total);
|
SnailJobLog.LOCAL.debug("Retry clear success total:[{}]", total);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
SnailJobLog.LOCAL.error("clear log error", e);
|
SnailJobLog.LOCAL.error("clear log error", e);
|
||||||
} finally {
|
|
||||||
// update clean time
|
|
||||||
lastCleanLogTime = System.currentTimeMillis();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,7 +134,7 @@ public class ClearLogSchedule extends AbstractSchedule implements Lifecycle {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void start() {
|
||||||
taskScheduler.scheduleAtFixedRate(this::execute, Duration.parse("PT1H"));
|
taskScheduler.scheduleAtFixedRate(this::execute, Duration.parse("PT4H"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -49,8 +49,6 @@ import static java.util.stream.Collectors.toList;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class RetryLogMergeSchedule extends AbstractSchedule implements Lifecycle {
|
public class RetryLogMergeSchedule extends AbstractSchedule implements Lifecycle {
|
||||||
|
|
||||||
// last merge log time
|
|
||||||
private static Long lastMergeLogTime = 0L;
|
|
||||||
private final SystemProperties systemProperties;
|
private final SystemProperties systemProperties;
|
||||||
private final RetryTaskLogMapper retryTaskLogMapper;
|
private final RetryTaskLogMapper retryTaskLogMapper;
|
||||||
private final RetryTaskLogMessageMapper retryTaskLogMessageMapper;
|
private final RetryTaskLogMessageMapper retryTaskLogMessageMapper;
|
||||||
@ -74,10 +72,6 @@ public class RetryLogMergeSchedule extends AbstractSchedule implements Lifecycle
|
|||||||
@Override
|
@Override
|
||||||
protected void doExecute() {
|
protected void doExecute() {
|
||||||
try {
|
try {
|
||||||
// 合并日志数据最少保留最近一天的日志数据
|
|
||||||
if (System.currentTimeMillis() - lastMergeLogTime < 24 * 60 * 60 * 1000) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// merge job log
|
// merge job log
|
||||||
long total;
|
long total;
|
||||||
LocalDateTime endTime = LocalDateTime.now().minusDays(systemProperties.getMergeLogDays());
|
LocalDateTime endTime = LocalDateTime.now().minusDays(systemProperties.getMergeLogDays());
|
||||||
@ -87,9 +81,6 @@ public class RetryLogMergeSchedule extends AbstractSchedule implements Lifecycle
|
|||||||
SnailJobLog.LOCAL.debug("job merge success total:[{}]", total);
|
SnailJobLog.LOCAL.debug("job merge success total:[{}]", total);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
SnailJobLog.LOCAL.error("job merge log error", e);
|
SnailJobLog.LOCAL.error("job merge log error", e);
|
||||||
} finally {
|
|
||||||
// update merge time
|
|
||||||
lastMergeLogTime = System.currentTimeMillis();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,17 +1,24 @@
|
|||||||
FROM --platform=$BUILDPLATFORM amazoncorretto:17 as builder
|
# 贝尔实验室 Spring 官方推荐镜像, 能解决arm芯片国产操作系统运行问题
|
||||||
WORKDIR /
|
FROM bellsoft/liberica-openjdk-debian:17.0.11-cds
|
||||||
|
|
||||||
ADD ./target/snail-job-server-exec.jar snail-job-server.jar
|
LABEL maintainer="opensnail"
|
||||||
|
LABEL app-name="snail-job-server"
|
||||||
|
LABEL description="SnailJob is a high performance distributed task scheduler and retry management center"
|
||||||
|
|
||||||
FROM --platform=$BUILDPLATFORM amazoncorretto:17
|
ENV TZ=Asia/Shanghai LANG=C.UTF-8 LC_ALL=C.UTF-8
|
||||||
MAINTAINER opensnail
|
ENV JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC"
|
||||||
LABEL server-name=snail-job-server
|
ENV PARAMS=""
|
||||||
|
|
||||||
#对外暴漏的端口号
|
WORKDIR /snailjob/server
|
||||||
|
ADD ./target/snail-job-server-exec.jar app.jar
|
||||||
|
|
||||||
|
# 对外暴漏的端口号
|
||||||
EXPOSE 8080
|
EXPOSE 8080
|
||||||
EXPOSE 1788
|
EXPOSE 1788
|
||||||
|
|
||||||
WORKDIR /
|
# 数据卷, 用于映射日志目录
|
||||||
COPY --from=builder /snail-job-server.jar .
|
VOLUME /snailjob/server/data/log
|
||||||
|
|
||||||
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /snail-job-server.jar $PARAMS"]
|
# https://docs.docker.com/reference/build-checks/json-args-recommended/
|
||||||
|
SHELL ["/bin/bash", "-c"]
|
||||||
|
ENTRYPOINT java $JAVA_OPTS -jar app.jar $PARAMS
|
||||||
|
Loading…
Reference in New Issue
Block a user