|
@@ -18,7 +18,9 @@
|
|
|
package org.apache.dolphinscheduler.common.lifecycle;
|
|
|
|
|
|
import lombok.experimental.UtilityClass;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
+@Slf4j
|
|
|
@UtilityClass
|
|
|
public class ServerLifeCycleManager {
|
|
|
|
|
@@ -52,20 +54,24 @@ public class ServerLifeCycleManager {
|
|
|
throw new ServerLifeCycleException("The current server is already stopped, cannot change to waiting");
|
|
|
}
|
|
|
|
|
|
- if (serverStatus != ServerStatus.RUNNING) {
|
|
|
- throw new ServerLifeCycleException("The current server is not at running status, cannot change to waiting");
|
|
|
+ if (serverStatus == ServerStatus.WAITING) {
|
|
|
+ log.warn("The current server is already at waiting status, cannot change to waiting");
|
|
|
+ return;
|
|
|
}
|
|
|
serverStatus = ServerStatus.WAITING;
|
|
|
}
|
|
|
|
|
|
|
|
|
* Recover from {@link ServerStatus#WAITING} to {@link ServerStatus#RUNNING}.
|
|
|
- *
|
|
|
- * @throws ServerLifeCycleException if change failed
|
|
|
*/
|
|
|
public static synchronized void recoverFromWaiting() throws ServerLifeCycleException {
|
|
|
- if (serverStatus != ServerStatus.WAITING) {
|
|
|
- throw new ServerLifeCycleException("The current server status is not waiting, cannot recover form waiting");
|
|
|
+ if (isStopped()) {
|
|
|
+ throw new ServerLifeCycleException("The current server is already stopped, cannot recovery");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (serverStatus == ServerStatus.RUNNING) {
|
|
|
+ log.warn("The current server status is already running, cannot recover form waiting");
|
|
|
+ return;
|
|
|
}
|
|
|
serverStartupTime = System.currentTimeMillis();
|
|
|
serverStatus = ServerStatus.RUNNING;
|