You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by ca...@apache.org on 2022/03/28 01:39:06 UTC
[dolphinscheduler] branch dev updated: [Bug-9137][Server] fix timezone init (#9219)
This is an automated email from the ASF dual-hosted git repository.
caishunfeng pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 263791a [Bug-9137][Server] fix timezone init (#9219)
263791a is described below
commit 263791a63e4b85f96563eda51704816d2c38e600
Author: caishunfeng <ca...@gmail.com>
AuthorDate: Mon Mar 28 09:38:51 2022 +0800
[Bug-9137][Server] fix timezone init (#9219)
Co-authored-by: caishunfeng <53...@qq.com>
---
.../src/main/bin/start.sh | 2 +-
.../apache/dolphinscheduler/alert/AlertServer.java | 13 +--
dolphinscheduler-api/src/main/bin/start.sh | 2 +-
.../dolphinscheduler/api/ApiApplicationServer.java | 12 --
.../dolphinscheduler/common/utils/JSONUtils.java | 4 +
dolphinscheduler-master/src/main/bin/start.sh | 2 +-
.../server/master/MasterServer.java | 8 --
dolphinscheduler-python/src/main/bin/start.sh | 2 +-
.../server/PythonGatewayServer.java | 123 ++++++++++-----------
.../dolphinscheduler/spi/utils/JSONUtils.java | 4 +
.../src/main/bin/start.sh | 2 +-
.../src/main/dist-bin/start.sh | 2 +-
.../apache/dolphinscheduler/StandaloneServer.java | 13 ---
dolphinscheduler-worker/src/main/bin/start.sh | 2 +-
.../server/worker/WorkerServer.java | 7 --
15 files changed, 73 insertions(+), 125 deletions(-)
diff --git a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/bin/start.sh b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/bin/start.sh
index eda02bb..14ed6d1 100644
--- a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/bin/start.sh
+++ b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/bin/start.sh
@@ -21,7 +21,7 @@ DOLPHINSCHEDULER_HOME=${DOLPHINSCHEDULER_HOME:-$(cd $BIN_DIR/..; pwd)}
source "$BIN_DIR/dolphinscheduler_env.sh"
-JAVA_OPTS=${JAVA_OPTS:-"-server -Xms1g -Xmx1g -Xmn512m -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
+JAVA_OPTS=${JAVA_OPTS:-"-server -Duser.timezone=${SPRING_JACKSON_TIME_ZONE} -Xms1g -Xmx1g -Xmn512m -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
if [[ "$DOCKER" == "true" ]]; then
JAVA_OPTS="${JAVA_OPTS} -XX:-UseContainerSupport"
diff --git a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertServer.java b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertServer.java
index f776be5..6b18bef 100644
--- a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertServer.java
+++ b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertServer.java
@@ -27,17 +27,14 @@ import org.apache.dolphinscheduler.remote.config.NettyServerConfig;
import java.io.Closeable;
import java.util.List;
-import java.util.TimeZone;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
-import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.event.ApplicationReadyEvent;
@@ -60,9 +57,6 @@ public class AlertServer implements Closeable {
@Autowired
private AlertConfig config;
- @Value("${spring.jackson.time-zone:UTC}")
- private String timezone;
-
public AlertServer(PluginDao pluginDao, AlertDao alertDao, AlertPluginManager alertPluginManager, AlertSender alertSender, AlertRequestProcessor alertRequestProcessor) {
this.pluginDao = pluginDao;
this.alertDao = alertDao;
@@ -75,11 +69,6 @@ public class AlertServer implements Closeable {
SpringApplication.run(AlertServer.class, args);
}
- @PostConstruct
- public void init() {
- TimeZone.setDefault(TimeZone.getTimeZone(timezone));
- }
-
@EventListener
public void start(ApplicationReadyEvent readyEvent) {
logger.info("Starting Alert server");
@@ -88,7 +77,7 @@ public class AlertServer implements Closeable {
startServer();
Executors.newScheduledThreadPool(1)
- .scheduleAtFixedRate(new Sender(), 5, 5, TimeUnit.SECONDS);
+ .scheduleAtFixedRate(new Sender(), 5, 5, TimeUnit.SECONDS);
}
@Override
diff --git a/dolphinscheduler-api/src/main/bin/start.sh b/dolphinscheduler-api/src/main/bin/start.sh
index 6665506..15dc38c 100644
--- a/dolphinscheduler-api/src/main/bin/start.sh
+++ b/dolphinscheduler-api/src/main/bin/start.sh
@@ -21,7 +21,7 @@ DOLPHINSCHEDULER_HOME=${DOLPHINSCHEDULER_HOME:-$(cd $BIN_DIR/..; pwd)}
source "$BIN_DIR/dolphinscheduler_env.sh"
-JAVA_OPTS=${JAVA_OPTS:-"-server -Xms1g -Xmx1g -Xmn512m -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
+JAVA_OPTS=${JAVA_OPTS:-"-server -Duser.timezone=${SPRING_JACKSON_TIME_ZONE} -Xms1g -Xmx1g -Xmn512m -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
if [[ "$DOCKER" == "true" ]]; then
JAVA_OPTS="${JAVA_OPTS} -XX:-UseContainerSupport"
diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/ApiApplicationServer.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/ApiApplicationServer.java
index 59e9c7e..7981f8a 100644
--- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/ApiApplicationServer.java
+++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/ApiApplicationServer.java
@@ -17,11 +17,6 @@
package org.apache.dolphinscheduler.api;
-import java.util.TimeZone;
-
-import javax.annotation.PostConstruct;
-
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
@@ -32,15 +27,8 @@ import org.springframework.context.annotation.ComponentScan;
@ComponentScan("org.apache.dolphinscheduler")
public class ApiApplicationServer {
- @Value("${spring.jackson.time-zone:UTC}")
- private String timezone;
-
public static void main(String[] args) {
SpringApplication.run(ApiApplicationServer.class);
}
- @PostConstruct
- public void run() {
- TimeZone.setDefault(TimeZone.getTimeZone(timezone));
- }
}
diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java
index 92875e8..dbd7d83 100644
--- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java
+++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java
@@ -63,6 +63,10 @@ public class JSONUtils {
private static final Logger logger = LoggerFactory.getLogger(JSONUtils.class);
+ static {
+ logger.info("init timezone: {}",TimeZone.getDefault());
+ }
+
/**
* can use static singleton, inject: just make sure to reuse!
*/
diff --git a/dolphinscheduler-master/src/main/bin/start.sh b/dolphinscheduler-master/src/main/bin/start.sh
index b9d0c8d..f4ee3c5 100644
--- a/dolphinscheduler-master/src/main/bin/start.sh
+++ b/dolphinscheduler-master/src/main/bin/start.sh
@@ -21,7 +21,7 @@ DOLPHINSCHEDULER_HOME=${DOLPHINSCHEDULER_HOME:-$(cd $BIN_DIR/..; pwd)}
source "$BIN_DIR/dolphinscheduler_env.sh"
-JAVA_OPTS=${JAVA_OPTS:-"-server -Xms4g -Xmx4g -Xmn2g -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
+JAVA_OPTS=${JAVA_OPTS:-"-server -Duser.timezone=${SPRING_JACKSON_TIME_ZONE} -Xms4g -Xmx4g -Xmn2g -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
if [[ "$DOCKER" == "true" ]]; then
JAVA_OPTS="${JAVA_OPTS} -XX:-UseContainerSupport"
diff --git a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java
index 92eb973..22b4a69 100644
--- a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java
+++ b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java
@@ -37,8 +37,6 @@ import org.apache.dolphinscheduler.server.master.runner.FailoverExecuteThread;
import org.apache.dolphinscheduler.server.master.runner.MasterSchedulerService;
import org.apache.dolphinscheduler.service.bean.SpringApplicationContext;
-import java.util.TimeZone;
-
import javax.annotation.PostConstruct;
import org.quartz.Scheduler;
@@ -46,7 +44,6 @@ import org.quartz.SchedulerException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
@@ -104,9 +101,6 @@ public class MasterServer implements IStoppable {
@Autowired
private LoggerRequestProcessor loggerRequestProcessor;
- @Value("${spring.jackson.time-zone:UTC}")
- private String timezone;
-
public static void main(String[] args) {
Thread.currentThread().setName(Constants.THREAD_NAME_MASTER_SERVER);
SpringApplication.run(MasterServer.class);
@@ -117,8 +111,6 @@ public class MasterServer implements IStoppable {
*/
@PostConstruct
public void run() throws SchedulerException {
- TimeZone.setDefault(TimeZone.getTimeZone(timezone));
-
// init remoting server
NettyServerConfig serverConfig = new NettyServerConfig();
serverConfig.setListenPort(masterConfig.getListenPort());
diff --git a/dolphinscheduler-python/src/main/bin/start.sh b/dolphinscheduler-python/src/main/bin/start.sh
index f189684..d588a2b 100644
--- a/dolphinscheduler-python/src/main/bin/start.sh
+++ b/dolphinscheduler-python/src/main/bin/start.sh
@@ -21,7 +21,7 @@ DOLPHINSCHEDULER_HOME=${DOLPHINSCHEDULER_HOME:-$(cd $BIN_DIR/..; pwd)}
source "$BIN_DIR/dolphinscheduler_env.sh"
-JAVA_OPTS=${JAVA_OPTS:-"-server -Xms1g -Xmx1g -Xmn512m -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
+JAVA_OPTS=${JAVA_OPTS:-"-server -Duser.timezone=${SPRING_JACKSON_TIME_ZONE} -Xms1g -Xmx1g -Xmn512m -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
if [[ "$DOCKER" == "true" ]]; then
JAVA_OPTS="${JAVA_OPTS} -XX:-UseContainerSupport"
diff --git a/dolphinscheduler-python/src/main/java/org/apache/dolphinscheduler/server/PythonGatewayServer.java b/dolphinscheduler-python/src/main/java/org/apache/dolphinscheduler/server/PythonGatewayServer.java
index 218cf61..2f7fc94 100644
--- a/dolphinscheduler-python/src/main/java/org/apache/dolphinscheduler/server/PythonGatewayServer.java
+++ b/dolphinscheduler-python/src/main/java/org/apache/dolphinscheduler/server/PythonGatewayServer.java
@@ -59,6 +59,8 @@ import org.apache.dolphinscheduler.dao.mapper.TaskDefinitionMapper;
import org.apache.dolphinscheduler.server.config.PythonGatewayConfig;
import org.apache.dolphinscheduler.spi.enums.ResourceType;
+import org.apache.commons.collections.CollectionUtils;
+
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
@@ -66,7 +68,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.TimeZone;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
@@ -74,7 +75,6 @@ import javax.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
@@ -82,8 +82,6 @@ import org.springframework.context.annotation.ComponentScan;
import py4j.GatewayServer;
-import org.apache.commons.collections.CollectionUtils;
-
@SpringBootApplication
@ComponentScan(value = "org.apache.dolphinscheduler")
public class PythonGatewayServer extends SpringBootServletInitializer {
@@ -148,14 +146,6 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
@Autowired
private ProjectUserMapper projectUserMapper;
- @Value("${spring.jackson.time-zone:UTC}")
- private String timezone;
-
- @PostConstruct
- public void init() {
- TimeZone.setDefault(TimeZone.getTimeZone(timezone));
- }
-
// TODO replace this user to build in admin user if we make sure build in one could not be change
private final User dummyAdminUser = new User() {
{
@@ -207,19 +197,19 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
* If process definition do not exists in Project=`projectCode` would create a new one
* If process definition already exists in Project=`projectCode` would update it
*
- * @param userName user name who create or update process definition
- * @param projectName project name which process definition belongs to
- * @param name process definition name
- * @param description description
- * @param globalParams global params
- * @param schedule schedule for process definition, will not set schedule if null,
- * and if would always fresh exists schedule if not null
- * @param locations locations json object about all tasks
- * @param timeout timeout for process definition working, if running time longer than timeout,
- * task will mark as fail
- * @param workerGroup run task in which worker group
- * @param tenantCode tenantCode
- * @param taskRelationJson relation json for nodes
+ * @param userName user name who create or update process definition
+ * @param projectName project name which process definition belongs to
+ * @param name process definition name
+ * @param description description
+ * @param globalParams global params
+ * @param schedule schedule for process definition, will not set schedule if null,
+ * and if would always fresh exists schedule if not null
+ * @param locations locations json object about all tasks
+ * @param timeout timeout for process definition working, if running time longer than timeout,
+ * task will mark as fail
+ * @param workerGroup run task in which worker group
+ * @param tenantCode tenantCode
+ * @param taskRelationJson relation json for nodes
* @param taskDefinitionJson taskDefinitionJson
* @return create result code
*/
@@ -248,10 +238,10 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
// make sure process definition offline which could edit
processDefinitionService.releaseProcessDefinition(user, projectCode, processDefinitionCode, ReleaseState.OFFLINE);
Map<String, Object> result = processDefinitionService.updateProcessDefinition(user, projectCode, name, processDefinitionCode, description, globalParams,
- locations, timeout, tenantCode, taskRelationJson, taskDefinitionJson, executionType);
+ locations, timeout, tenantCode, taskRelationJson, taskDefinitionJson, executionType);
} else {
Map<String, Object> result = processDefinitionService.createProcessDefinition(user, projectCode, name, description, globalParams,
- locations, timeout, tenantCode, taskRelationJson, taskDefinitionJson, executionType);
+ locations, timeout, tenantCode, taskRelationJson, taskDefinitionJson, executionType);
processDefinition = (ProcessDefinition) result.get(Constants.DATA_LIST);
processDefinitionCode = processDefinition.getCode();
}
@@ -266,8 +256,9 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
/**
* get process definition
- * @param user user who create or update schedule
- * @param projectCode project which process definition belongs to
+ *
+ * @param user user who create or update schedule
+ * @param projectCode project which process definition belongs to
* @param processDefinitionName process definition name
*/
private ProcessDefinition getProcessDefinition(User user, long projectCode, String processDefinitionName) {
@@ -291,11 +282,11 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
* It would always use latest schedule define in workflow-as-code, and set schedule online when
* it's not null
*
- * @param user user who create or update schedule
- * @param projectCode project which process definition belongs to
+ * @param user user who create or update schedule
+ * @param projectCode project which process definition belongs to
* @param processDefinitionCode process definition code
- * @param schedule schedule expression
- * @param workerGroup work group
+ * @param schedule schedule expression
+ * @param workerGroup work group
*/
private void createOrUpdateSchedule(User user,
long projectCode,
@@ -308,13 +299,13 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
if (scheduleObj == null) {
processDefinitionService.releaseProcessDefinition(user, projectCode, processDefinitionCode, ReleaseState.ONLINE);
Map<String, Object> result = schedulerService.insertSchedule(user, projectCode, processDefinitionCode, schedule, DEFAULT_WARNING_TYPE,
- DEFAULT_WARNING_GROUP_ID, DEFAULT_FAILURE_STRATEGY, DEFAULT_PRIORITY, workerGroup, DEFAULT_ENVIRONMENT_CODE);
+ DEFAULT_WARNING_GROUP_ID, DEFAULT_FAILURE_STRATEGY, DEFAULT_PRIORITY, workerGroup, DEFAULT_ENVIRONMENT_CODE);
scheduleId = (int) result.get("scheduleId");
} else {
scheduleId = scheduleObj.getId();
processDefinitionService.releaseProcessDefinition(user, projectCode, processDefinitionCode, ReleaseState.OFFLINE);
schedulerService.updateSchedule(user, projectCode, scheduleId, schedule, DEFAULT_WARNING_TYPE,
- DEFAULT_WARNING_GROUP_ID, DEFAULT_FAILURE_STRATEGY, DEFAULT_PRIORITY, workerGroup, DEFAULT_ENVIRONMENT_CODE);
+ DEFAULT_WARNING_GROUP_ID, DEFAULT_FAILURE_STRATEGY, DEFAULT_PRIORITY, workerGroup, DEFAULT_ENVIRONMENT_CODE);
}
schedulerService.setScheduleState(user, projectCode, scheduleId, ReleaseState.ONLINE);
}
@@ -334,24 +325,24 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
processDefinitionService.releaseProcessDefinition(user, project.getCode(), processDefinition.getCode(), ReleaseState.ONLINE);
executorService.execProcessInstance(user,
- project.getCode(),
- processDefinition.getCode(),
- cronTime,
- null,
- DEFAULT_FAILURE_STRATEGY,
- null,
- DEFAULT_TASK_DEPEND_TYPE,
- DEFAULT_WARNING_TYPE,
- DEFAULT_WARNING_GROUP_ID,
- DEFAULT_RUN_MODE,
- DEFAULT_PRIORITY,
- workerGroup,
- DEFAULT_ENVIRONMENT_CODE,
- timeout,
- null,
- null,
- DEFAULT_DRY_RUN,
- COMPLEMENT_DEPENDENT_MODE
+ project.getCode(),
+ processDefinition.getCode(),
+ cronTime,
+ null,
+ DEFAULT_FAILURE_STRATEGY,
+ null,
+ DEFAULT_TASK_DEPEND_TYPE,
+ DEFAULT_WARNING_TYPE,
+ DEFAULT_WARNING_GROUP_ID,
+ DEFAULT_RUN_MODE,
+ DEFAULT_PRIORITY,
+ workerGroup,
+ DEFAULT_ENVIRONMENT_CODE,
+ timeout,
+ null,
+ null,
+ DEFAULT_DRY_RUN,
+ COMPLEMENT_DEPENDENT_MODE
);
}
@@ -468,8 +459,8 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
* Get processDefinition by given processDefinitionName name. It return map contain processDefinition id, name, code.
* Useful in Python API create subProcess task which need processDefinition information.
*
- * @param userName user who create or update schedule
- * @param projectName project name which process definition belongs to
+ * @param userName user who create or update schedule
+ * @param projectName project name which process definition belongs to
* @param processDefinitionName process definition name
*/
public Map<String, Object> getProcessDefinitionInfo(String userName, String projectName, String processDefinitionName) {
@@ -499,9 +490,9 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
* Get project, process definition, task code.
* Useful in Python API create dependent task which need processDefinition information.
*
- * @param projectName project name which process definition belongs to
+ * @param projectName project name which process definition belongs to
* @param processDefinitionName process definition name
- * @param taskName task name
+ * @param taskName task name
*/
public Map<String, Object> getDependentInfo(String projectName, String processDefinitionName, String taskName) {
Map<String, Object> result = new HashMap<>();
@@ -535,7 +526,7 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
* Useful in Python API create flink or spark task which need processDefinition information.
*
* @param programType program type one of SCALA, JAVA and PYTHON
- * @param fullName full name of the resource
+ * @param fullName full name of the resource
*/
public Map<String, Object> getResourcesFileInfo(String programType, String fullName) {
Map<String, Object> result = new HashMap<>();
@@ -561,14 +552,14 @@ public class PythonGatewayServer extends SpringBootServletInitializer {
InetAddress gatewayHost = InetAddress.getByName(pythonGatewayConfig.getGatewayServerAddress());
InetAddress pythonHost = InetAddress.getByName(pythonGatewayConfig.getPythonAddress());
server = new GatewayServer(
- this,
- pythonGatewayConfig.getGatewayServerPort(),
- pythonGatewayConfig.getPythonPort(),
- gatewayHost,
- pythonHost,
- pythonGatewayConfig.getConnectTimeout(),
- pythonGatewayConfig.getReadTimeout(),
- null
+ this,
+ pythonGatewayConfig.getGatewayServerPort(),
+ pythonGatewayConfig.getPythonPort(),
+ gatewayHost,
+ pythonHost,
+ pythonGatewayConfig.getConnectTimeout(),
+ pythonGatewayConfig.getReadTimeout(),
+ null
);
GatewayServer.turnLoggingOn();
logger.info("PythonGatewayServer started on: " + gatewayHost.toString());
diff --git a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/utils/JSONUtils.java b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/utils/JSONUtils.java
index 5183a16..3bbe770 100644
--- a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/utils/JSONUtils.java
+++ b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/utils/JSONUtils.java
@@ -55,6 +55,10 @@ public class JSONUtils {
private static final Logger logger = LoggerFactory.getLogger(JSONUtils.class);
+ static {
+ logger.info("init timezone: {}",TimeZone.getDefault());
+ }
+
/**
* can use static singleton, inject: just make sure to reuse!
*/
diff --git a/dolphinscheduler-standalone-server/src/main/bin/start.sh b/dolphinscheduler-standalone-server/src/main/bin/start.sh
index 6e1a4f4..935db38 100755
--- a/dolphinscheduler-standalone-server/src/main/bin/start.sh
+++ b/dolphinscheduler-standalone-server/src/main/bin/start.sh
@@ -21,7 +21,7 @@ DOLPHINSCHEDULER_HOME=${DOLPHINSCHEDULER_HOME:-$(cd $BIN_DIR/..; pwd)}
source "$BIN_DIR/dolphinscheduler_env.sh"
-JAVA_OPTS=${JAVA_OPTS:-"-server -Xms1g -Xmx1g -Xmn512m -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
+JAVA_OPTS=${JAVA_OPTS:-"-server -Duser.timezone=${SPRING_JACKSON_TIME_ZONE} -Xms1g -Xmx1g -Xmn512m -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
if [[ "$DOCKER" == "true" ]]; then
JAVA_OPTS="${JAVA_OPTS} -XX:-UseContainerSupport"
diff --git a/dolphinscheduler-standalone-server/src/main/dist-bin/start.sh b/dolphinscheduler-standalone-server/src/main/dist-bin/start.sh
index b90a6db..4ef3a11 100755
--- a/dolphinscheduler-standalone-server/src/main/dist-bin/start.sh
+++ b/dolphinscheduler-standalone-server/src/main/dist-bin/start.sh
@@ -21,7 +21,7 @@ DOLPHINSCHEDULER_HOME=${DOLPHINSCHEDULER_HOME:-$(cd $BIN_DIR/..; pwd)}
source "$BIN_DIR/dolphinscheduler_env.sh"
-JAVA_OPTS=${JAVA_OPTS:-"-server -Xms1g -Xmx1g -Xmn512m -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
+JAVA_OPTS=${JAVA_OPTS:-"-server -Duser.timezone=${SPRING_JACKSON_TIME_ZONE} -Xms1g -Xmx1g -Xmn512m -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
if [[ "$DOCKER" == "true" ]]; then
JAVA_OPTS="${JAVA_OPTS} -XX:-UseContainerSupport"
diff --git a/dolphinscheduler-standalone-server/src/main/java/org/apache/dolphinscheduler/StandaloneServer.java b/dolphinscheduler-standalone-server/src/main/java/org/apache/dolphinscheduler/StandaloneServer.java
index 35a9cd3..3866c53 100644
--- a/dolphinscheduler-standalone-server/src/main/java/org/apache/dolphinscheduler/StandaloneServer.java
+++ b/dolphinscheduler-standalone-server/src/main/java/org/apache/dolphinscheduler/StandaloneServer.java
@@ -19,28 +19,15 @@ package org.apache.dolphinscheduler;
import org.apache.curator.test.TestingServer;
-import java.util.TimeZone;
-
-import javax.annotation.PostConstruct;
-
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class StandaloneServer {
- @Value("${spring.jackson.time-zone:UTC}")
- private String timezone;
-
public static void main(String[] args) throws Exception {
final TestingServer server = new TestingServer(true);
System.setProperty("registry.zookeeper.connect-string", server.getConnectString());
SpringApplication.run(StandaloneServer.class, args);
}
-
- @PostConstruct
- public void run() {
- TimeZone.setDefault(TimeZone.getTimeZone(timezone));
- }
}
diff --git a/dolphinscheduler-worker/src/main/bin/start.sh b/dolphinscheduler-worker/src/main/bin/start.sh
index 1d8b378..514be53 100644
--- a/dolphinscheduler-worker/src/main/bin/start.sh
+++ b/dolphinscheduler-worker/src/main/bin/start.sh
@@ -22,7 +22,7 @@ DOLPHINSCHEDULER_HOME=${DOLPHINSCHEDULER_HOME:-$(cd $BIN_DIR/..; pwd)}
chmod -R 700 ${DOLPHINSCHEDULER_HOME}/config
export DOLPHINSCHEDULER_WORK_HOME=${DOLPHINSCHEDULER_HOME}
-JAVA_OPTS=${JAVA_OPTS:-"-server -Xms4g -Xmx4g -Xmn2g -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
+JAVA_OPTS=${JAVA_OPTS:-"-server -Duser.timezone=${SPRING_JACKSON_TIME_ZONE} -Xms4g -Xmx4g -Xmn2g -XX:+PrintGCDetails -Xloggc:gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump.hprof"}
if [[ "$DOCKER" == "true" ]]; then
JAVA_OPTS="${JAVA_OPTS} -XX:-UseContainerSupport"
diff --git a/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/WorkerServer.java b/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/WorkerServer.java
index d5ce17a..4311612 100644
--- a/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/WorkerServer.java
+++ b/dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/WorkerServer.java
@@ -44,14 +44,12 @@ import org.apache.commons.collections4.CollectionUtils;
import java.util.Collection;
import java.util.Set;
-import java.util.TimeZone;
import javax.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@@ -124,9 +122,6 @@ public class WorkerServer implements IStoppable {
@Autowired
private LoggerRequestProcessor loggerRequestProcessor;
- @Value("${spring.jackson.time-zone:UTC}")
- private String timezone;
-
/**
* worker server startup, not use web service
*
@@ -142,8 +137,6 @@ public class WorkerServer implements IStoppable {
*/
@PostConstruct
public void run() {
- TimeZone.setDefault(TimeZone.getTimeZone(timezone));
-
// init remoting server
NettyServerConfig serverConfig = new NettyServerConfig();
serverConfig.setListenPort(workerConfig.getListenPort());