mirror of
https://github.com/PowerJob/PowerJob.git
synced 2025-07-17 00:00:04 +08:00
[dev] clean h2 workspace before worker startup
This commit is contained in:
parent
5974da1ae6
commit
2df52fbf58
@ -39,9 +39,9 @@ public class OhMyApplication {
|
||||
// 再启动SpringBoot
|
||||
try {
|
||||
SpringApplication.run(OhMyApplication.class, args);
|
||||
}catch (Exception e) {
|
||||
}catch (Throwable t) {
|
||||
log.error(TIPS);
|
||||
throw e;
|
||||
throw t;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
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.springframework.boot.context.properties.ConfigurationProperties;
|
||||
@ -20,7 +21,7 @@ import javax.sql.DataSource;
|
||||
public class MultiDatasourceConfig {
|
||||
|
||||
private static final String H2_DRIVER_CLASS_NAME = "org.h2.Driver";
|
||||
private static final String H2_JDBC_URL = "jdbc:h2:file:~/powerjob-server/h2/powerjob_server_db";
|
||||
private static final String H2_JDBC_URL_PATTERN = "jdbc:h2:file:%spowerjob_server_db";
|
||||
private static final int H2_MIN_SIZE = 4;
|
||||
private static final int H2_MAX_ACTIVE_SIZE = 10;
|
||||
|
||||
@ -35,7 +36,7 @@ public class MultiDatasourceConfig {
|
||||
public DataSource initOmsLocalDatasource() {
|
||||
HikariConfig config = new HikariConfig();
|
||||
config.setDriverClassName(H2_DRIVER_CLASS_NAME);
|
||||
config.setJdbcUrl(H2_JDBC_URL);
|
||||
config.setJdbcUrl(String.format(H2_JDBC_URL_PATTERN, OmsFileUtils.genH2Path()));
|
||||
config.setAutoCommit(true);
|
||||
// 池中最小空闲连接数量
|
||||
config.setMinimumIdle(H2_MIN_SIZE);
|
||||
|
@ -21,6 +21,7 @@ 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;
|
||||
@ -30,6 +31,7 @@ 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;
|
||||
@ -37,6 +39,7 @@ 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;
|
||||
@ -80,6 +83,7 @@ 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()) {
|
||||
@ -179,4 +183,14 @@ public class OhMyWorker implements ApplicationContextAware, InitializingBean, Di
|
||||
public void destroy() throws Exception {
|
||||
timingPool.shutdownNow();
|
||||
}
|
||||
|
||||
private static void pre() {
|
||||
// 删除历史遗留的 H2 数据库文件
|
||||
String h2Path = OmsWorkerFileUtils.getH2Dir();
|
||||
try {
|
||||
FileUtils.forceDeleteOnExit(new File(h2Path));
|
||||
}catch (Exception e) {
|
||||
log.warn("[PowerJob] delete h2 workspace({}) failed, if worker can't startup successfully, please delete it manually", h2Path, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -18,4 +18,8 @@ public class OmsWorkerFileUtils {
|
||||
public static String getContainerDir() {
|
||||
return WORKER_DIR + "container/";
|
||||
}
|
||||
|
||||
public static String getH2Dir() {
|
||||
return WORKER_DIR + "h2/";
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.github.kfcfans.powerjob.worker.persistence;
|
||||
|
||||
import com.github.kfcfans.powerjob.worker.OhMyWorker;
|
||||
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;
|
||||
|
||||
@ -19,8 +20,8 @@ public class ConnectionFactory {
|
||||
|
||||
private static volatile DataSource dataSource;
|
||||
|
||||
private static final String DISK_JDBC_URL = "jdbc:h2:file:~/powerjob/h2/oms_worker_db";
|
||||
private static final String MEMORY_JDBC_URL = "jdbc:h2:mem:~/powerjob/h2/oms_worker_db";
|
||||
private static final String DISK_JDBC_URL = String.format("jdbc:h2:file:%spowerjob_worker_db", OmsWorkerFileUtils.getH2Dir());
|
||||
private static final String MEMORY_JDBC_URL = String.format("jdbc:h2:mem:%spowerjob_worker_db", OmsWorkerFileUtils.getH2Dir());
|
||||
|
||||
public static Connection getConnection() throws SQLException {
|
||||
return getDataSource().getConnection();
|
||||
|
Loading…
x
Reference in New Issue
Block a user