diff --git a/pom.xml b/pom.xml
index 24f4c25b..ae73497b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.github.kfcfans
powerjob
- 1.0.0
+ 2.0.0
pom
powerjob
https://github.com/KFCFans/PowerJob
diff --git a/powerjob-client/pom.xml b/powerjob-client/pom.xml
index 2d4286da..83485c94 100644
--- a/powerjob-client/pom.xml
+++ b/powerjob-client/pom.xml
@@ -5,7 +5,7 @@
powerjob
com.github.kfcfans
- 1.0.0
+ 2.0.0
4.0.0
diff --git a/powerjob-common/pom.xml b/powerjob-common/pom.xml
index bca0ae69..f0aadcfb 100644
--- a/powerjob-common/pom.xml
+++ b/powerjob-common/pom.xml
@@ -5,7 +5,7 @@
powerjob
com.github.kfcfans
- 1.0.0
+ 2.0.0
4.0.0
diff --git a/powerjob-server/pom.xml b/powerjob-server/pom.xml
index 215247f3..0675761e 100644
--- a/powerjob-server/pom.xml
+++ b/powerjob-server/pom.xml
@@ -5,7 +5,7 @@
powerjob
com.github.kfcfans
- 1.0.0
+ 2.0.0
4.0.0
diff --git a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/OhMyApplication.java b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/OhMyApplication.java
index a5a0ddcd..434a2e9b 100644
--- a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/OhMyApplication.java
+++ b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/OhMyApplication.java
@@ -1,16 +1,11 @@
package com.github.kfcfans.powerjob.server;
import com.github.kfcfans.powerjob.server.akka.OhMyServer;
-import com.github.kfcfans.powerjob.server.common.utils.OmsFileUtils;
-import com.google.common.annotations.VisibleForTesting;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.FileUtils;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
-import java.io.File;
-
/**
* SpringBoot 启动入口
*
@@ -46,19 +41,8 @@ public class OhMyApplication {
}
}
- @VisibleForTesting
- public static void pre() {
+ private static void pre() {
log.info(TIPS);
-
- // 删除历史遗留的 H2 数据库文件
- File oldH2 = new File(OmsFileUtils.genH2BasePath());
- try {
- if (oldH2.exists()) {
- FileUtils.forceDelete(oldH2);
- }
- }catch (Exception e) {
- log.warn("[PowerJob] delete h2 workspace({}) failed, if server can't startup successfully, please delete it manually", oldH2, e);
- }
}
}
diff --git a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/config/MultiDatasourceConfig.java b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/config/MultiDatasourceConfig.java
index 88693d16..06531499 100644
--- a/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/config/MultiDatasourceConfig.java
+++ b/powerjob-server/src/main/java/com/github/kfcfans/powerjob/server/persistence/config/MultiDatasourceConfig.java
@@ -3,6 +3,7 @@ package com.github.kfcfans.powerjob.server.persistence.config;
import com.github.kfcfans.powerjob.server.common.utils.OmsFileUtils;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
+import org.apache.commons.io.FileUtils;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
@@ -10,6 +11,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
+import java.io.File;
/**
* 多重数据源配置
@@ -34,14 +36,21 @@ public class MultiDatasourceConfig {
@Bean("omsLocalDatasource")
public DataSource initOmsLocalDatasource() {
+ String h2Path = OmsFileUtils.genH2WorkPath();
HikariConfig config = new HikariConfig();
config.setDriverClassName(H2_DRIVER_CLASS_NAME);
- config.setJdbcUrl(String.format(H2_JDBC_URL_PATTERN, OmsFileUtils.genH2WorkPath()));
+ config.setJdbcUrl(String.format(H2_JDBC_URL_PATTERN, h2Path));
config.setAutoCommit(true);
// 池中最小空闲连接数量
config.setMinimumIdle(H2_MIN_SIZE);
// 池中最大连接数量
config.setMaximumPoolSize(H2_MAX_ACTIVE_SIZE);
+
+ // JVM 关闭时删除文件
+ try {
+ FileUtils.forceDeleteOnExit(new File(h2Path));
+ }catch (Exception ignore) {
+ }
return new HikariDataSource(config);
}
}
diff --git a/powerjob-server/src/test/java/com/github/kfcfans/powerjob/server/test/UtilsTest.java b/powerjob-server/src/test/java/com/github/kfcfans/powerjob/server/test/UtilsTest.java
index cfe39ba7..c6ebe28b 100644
--- a/powerjob-server/src/test/java/com/github/kfcfans/powerjob/server/test/UtilsTest.java
+++ b/powerjob-server/src/test/java/com/github/kfcfans/powerjob/server/test/UtilsTest.java
@@ -92,9 +92,4 @@ public class UtilsTest {
System.out.println(StringUtils.containsWhitespace(goodAppName));
System.out.println(StringUtils.containsWhitespace(appName));
}
-
- @Test
- public void testPre() {
- OhMyApplication.pre();
- }
}
diff --git a/powerjob-worker-agent/pom.xml b/powerjob-worker-agent/pom.xml
index 82211504..b6a16adb 100644
--- a/powerjob-worker-agent/pom.xml
+++ b/powerjob-worker-agent/pom.xml
@@ -5,7 +5,7 @@
powerjob
com.github.kfcfans
- 1.0.0
+ 2.0.0
4.0.0
diff --git a/powerjob-worker-samples/pom.xml b/powerjob-worker-samples/pom.xml
index e2500e5a..071be86e 100644
--- a/powerjob-worker-samples/pom.xml
+++ b/powerjob-worker-samples/pom.xml
@@ -5,7 +5,7 @@
powerjob
com.github.kfcfans
- 1.0.0
+ 2.0.0
4.0.0
diff --git a/powerjob-worker-spring-boot-starter/pom.xml b/powerjob-worker-spring-boot-starter/pom.xml
index 1e7eb819..73c237bf 100644
--- a/powerjob-worker-spring-boot-starter/pom.xml
+++ b/powerjob-worker-spring-boot-starter/pom.xml
@@ -5,7 +5,7 @@
powerjob
com.github.kfcfans
- 1.0.0
+ 2.0.0
4.0.0
diff --git a/powerjob-worker/pom.xml b/powerjob-worker/pom.xml
index 63661bc0..7fb3fd36 100644
--- a/powerjob-worker/pom.xml
+++ b/powerjob-worker/pom.xml
@@ -5,7 +5,7 @@
powerjob
com.github.kfcfans
- 1.0.0
+ 2.0.0
4.0.0
diff --git a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/OhMyWorker.java b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/OhMyWorker.java
index 65719f48..3a78f2f9 100644
--- a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/OhMyWorker.java
+++ b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/OhMyWorker.java
@@ -12,16 +12,15 @@ import com.github.kfcfans.powerjob.common.utils.CommonUtils;
import com.github.kfcfans.powerjob.common.utils.HttpUtils;
import com.github.kfcfans.powerjob.common.utils.JsonUtils;
import com.github.kfcfans.powerjob.common.utils.NetUtils;
-import com.github.kfcfans.powerjob.worker.actors.TroubleshootingActor;
import com.github.kfcfans.powerjob.worker.actors.ProcessorTrackerActor;
import com.github.kfcfans.powerjob.worker.actors.TaskTrackerActor;
+import com.github.kfcfans.powerjob.worker.actors.TroubleshootingActor;
import com.github.kfcfans.powerjob.worker.actors.WorkerActor;
import com.github.kfcfans.powerjob.worker.background.OmsLogHandler;
import com.github.kfcfans.powerjob.worker.background.ServerDiscoveryService;
import com.github.kfcfans.powerjob.worker.background.WorkerHealthReporter;
import com.github.kfcfans.powerjob.worker.common.OhMyConfig;
import com.github.kfcfans.powerjob.worker.common.OmsBannerPrinter;
-import com.github.kfcfans.powerjob.worker.common.utils.OmsWorkerFileUtils;
import com.github.kfcfans.powerjob.worker.common.utils.SpringUtils;
import com.github.kfcfans.powerjob.worker.persistence.TaskPersistenceService;
import com.google.common.base.Stopwatch;
@@ -31,7 +30,6 @@ import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.io.FileUtils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
@@ -39,7 +37,6 @@ import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.util.StringUtils;
-import java.io.File;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.Executors;
@@ -83,7 +80,6 @@ public class OhMyWorker implements ApplicationContextAware, InitializingBean, Di
Stopwatch stopwatch = Stopwatch.createStarted();
log.info("[OhMyWorker] start to initialize OhMyWorker...");
try {
- pre();
OmsBannerPrinter.print();
// 校验 appName
if (!config.isEnableTestMode()) {
@@ -183,16 +179,4 @@ public class OhMyWorker implements ApplicationContextAware, InitializingBean, Di
public void destroy() throws Exception {
timingPool.shutdownNow();
}
-
- private static void pre() {
- // 删除历史遗留的 H2 数据库文件
- File oldH2File = new File(OmsWorkerFileUtils.getH2BaseDir());
- try {
- if (oldH2File.exists()) {
- FileUtils.forceDelete(oldH2File);
- }
- }catch (Exception e) {
- log.warn("[PowerJob] delete h2 workspace({}) failed, if worker can't startup successfully, please delete it manually", oldH2File, e);
- }
- }
}
diff --git a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/persistence/ConnectionFactory.java b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/persistence/ConnectionFactory.java
index 5fd2b537..0603576a 100644
--- a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/persistence/ConnectionFactory.java
+++ b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/persistence/ConnectionFactory.java
@@ -5,8 +5,12 @@ import com.github.kfcfans.powerjob.worker.common.constants.StoreStrategy;
import com.github.kfcfans.powerjob.worker.common.utils.OmsWorkerFileUtils;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.FileUtils;
+import org.h2.Driver;
import javax.sql.DataSource;
+import java.io.File;
import java.sql.Connection;
import java.sql.SQLException;
@@ -16,12 +20,14 @@ import java.sql.SQLException;
* @author tjq
* @since 2020/3/17
*/
+@Slf4j
public class ConnectionFactory {
private static volatile DataSource dataSource;
- private static final String DISK_JDBC_URL = String.format("jdbc:h2:file:%spowerjob_worker_db", OmsWorkerFileUtils.getH2WorkDir());
- private static final String MEMORY_JDBC_URL = String.format("jdbc:h2:mem:%spowerjob_worker_db", OmsWorkerFileUtils.getH2WorkDir());
+ private static final String H2_PATH = OmsWorkerFileUtils.getH2WorkDir();
+ private static final String DISK_JDBC_URL = String.format("jdbc:h2:file:%spowerjob_worker_db;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false", H2_PATH);
+ private static final String MEMORY_JDBC_URL = String.format("jdbc:h2:mem:%spowerjob_worker_db;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false", H2_PATH);
public static Connection getConnection() throws SQLException {
return getDataSource().getConnection();
@@ -38,7 +44,7 @@ public class ConnectionFactory {
StoreStrategy strategy = OhMyWorker.getConfig() == null ? StoreStrategy.DISK : OhMyWorker.getConfig().getStoreStrategy();
HikariConfig config = new HikariConfig();
- config.setDriverClassName("org.h2.Driver");
+ config.setDriverClassName(Driver.class.getName());
config.setJdbcUrl(strategy == StoreStrategy.DISK ? DISK_JDBC_URL : MEMORY_JDBC_URL);
config.setAutoCommit(true);
// 池中最小空闲连接数量
@@ -46,6 +52,14 @@ public class ConnectionFactory {
// 池中最大连接数量
config.setMaximumPoolSize(32);
dataSource = new HikariDataSource(config);
+
+ log.info("[OmsDatasource] init h2 datasource successfully, use url: {}", config.getJdbcUrl());
+
+ // JVM 关闭时删除数据库文件
+ try {
+ FileUtils.forceDeleteOnExit(new File(H2_PATH));
+ }catch (Exception ignore) {
+ }
}
}
return dataSource;
diff --git a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/persistence/TaskPersistenceService.java b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/persistence/TaskPersistenceService.java
index 0180b9ca..b967af3e 100644
--- a/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/persistence/TaskPersistenceService.java
+++ b/powerjob-worker/src/main/java/com/github/kfcfans/powerjob/worker/persistence/TaskPersistenceService.java
@@ -36,7 +36,7 @@ public class TaskPersistenceService {
private TaskPersistenceService() {
}
- private TaskDAO taskDAO = new TaskDAOImpl();
+ private final TaskDAO taskDAO = new TaskDAOImpl();
public void init() throws Exception {
if (initialized) {
@@ -207,8 +207,8 @@ public class TaskPersistenceService {
Map result = Maps.newHashMap();
dbRES.forEach(row -> {
// H2 数据库都是大写...
- int status = Integer.parseInt(String.valueOf(row.get("STATUS")));
- long num = Long.parseLong(String.valueOf(row.get("NUM")));
+ int status = Integer.parseInt(String.valueOf(row.get("status")));
+ long num = Long.parseLong(String.valueOf(row.get("num")));
result.put(TaskStatus.of(status), num);
});
return result;
@@ -238,10 +238,10 @@ public class TaskPersistenceService {
try {
SimpleTaskQuery query = genKeyQuery(instanceId, taskId);
- query.setQueryContent("STATUS");
+ query.setQueryContent("status");
return execute(() -> {
List