You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by we...@apache.org on 2022/08/22 14:37:01 UTC

[dolphinscheduler] branch dev updated: Refresh server startup time when recovery from waiting (#11595)

This is an automated email from the ASF dual-hosted git repository.

wenjun 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 c110f4acae Refresh server startup time when recovery from waiting (#11595)
c110f4acae is described below

commit c110f4acae82ca80abd93a0cc096a18a3cf0f6d1
Author: Wenjun Ruan <we...@apache.org>
AuthorDate: Mon Aug 22 22:36:49 2022 +0800

    Refresh server startup time when recovery from waiting (#11595)
---
 .../dolphinscheduler/common/lifecycle/ServerLifeCycleManager.java  | 7 +++++++
 .../org/apache/dolphinscheduler/server/registry/HeartBeatTask.java | 1 +
 2 files changed, 8 insertions(+)

diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/lifecycle/ServerLifeCycleManager.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/lifecycle/ServerLifeCycleManager.java
index 1e2a93f638..3c625d70e7 100644
--- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/lifecycle/ServerLifeCycleManager.java
+++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/lifecycle/ServerLifeCycleManager.java
@@ -24,6 +24,12 @@ public class ServerLifeCycleManager {
 
     private static volatile ServerStatus serverStatus = ServerStatus.RUNNING;
 
+    private static long serverStartupTime = System.currentTimeMillis();
+
+    public static long getServerStartupTime() {
+        return serverStartupTime;
+    }
+
     public static boolean isRunning() {
         return serverStatus == ServerStatus.RUNNING;
     }
@@ -61,6 +67,7 @@ public class ServerLifeCycleManager {
         if (serverStatus != ServerStatus.WAITING) {
             throw new ServerLifeCycleException("The current server status is not waiting, cannot recover form waiting");
         }
+        serverStartupTime = System.currentTimeMillis();
         serverStatus = ServerStatus.RUNNING;
     }
 
diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/registry/HeartBeatTask.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/registry/HeartBeatTask.java
index b146a25482..495d48e342 100644
--- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/registry/HeartBeatTask.java
+++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/registry/HeartBeatTask.java
@@ -74,6 +74,7 @@ public class HeartBeatTask implements Runnable {
             if (!ServerLifeCycleManager.isRunning()) {
                 return;
             }
+            heartBeat.setStartupTime(ServerLifeCycleManager.getServerStartupTime());
             // update waiting task count
             heartBeat.setWorkerWaitingTaskCount(workerWaitingTaskCount);