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

lizhanhui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new 2bb562cd9 Add preShutdown for StartAndShutdown (#5194)
2bb562cd9 is described below

commit 2bb562cd9a05a474dab3d23181bffd13003fba26
Author: Zhouxiang Zhan <[email protected]>
AuthorDate: Fri Oct 14 15:27:20 2022 +0800

    Add preShutdown for StartAndShutdown (#5194)
---
 proxy/src/main/java/org/apache/rocketmq/proxy/ProxyStartup.java   | 1 +
 .../apache/rocketmq/proxy/common/AbstractStartAndShutdown.java    | 8 ++++++++
 .../java/org/apache/rocketmq/proxy/common/StartAndShutdown.java   | 1 +
 3 files changed, 10 insertions(+)

diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/ProxyStartup.java 
b/proxy/src/main/java/org/apache/rocketmq/proxy/ProxyStartup.java
index f605df0bf..c051854a8 100644
--- a/proxy/src/main/java/org/apache/rocketmq/proxy/ProxyStartup.java
+++ b/proxy/src/main/java/org/apache/rocketmq/proxy/ProxyStartup.java
@@ -93,6 +93,7 @@ public class ProxyStartup {
             Runtime.getRuntime().addShutdownHook(new Thread(() -> {
                 log.info("try to shutdown server");
                 try {
+                    PROXY_START_AND_SHUTDOWN.preShutdown();
                     PROXY_START_AND_SHUTDOWN.shutdown();
                 } catch (Exception e) {
                     log.error("err when shutdown rocketmq-proxy", e);
diff --git 
a/proxy/src/main/java/org/apache/rocketmq/proxy/common/AbstractStartAndShutdown.java
 
b/proxy/src/main/java/org/apache/rocketmq/proxy/common/AbstractStartAndShutdown.java
index c59f18c4c..b0a3a68f4 100644
--- 
a/proxy/src/main/java/org/apache/rocketmq/proxy/common/AbstractStartAndShutdown.java
+++ 
b/proxy/src/main/java/org/apache/rocketmq/proxy/common/AbstractStartAndShutdown.java
@@ -42,6 +42,14 @@ public abstract class AbstractStartAndShutdown implements 
StartAndShutdown {
         }
     }
 
+    @Override
+    public void preShutdown() throws Exception {
+        int index = startAndShutdownList.size() - 1;
+        for (; index >= 0; index--) {
+            startAndShutdownList.get(index).preShutdown();
+        }
+    }
+
     public void appendStart(Start start) {
         this.appendStartAndShutdown(new StartAndShutdown() {
             @Override
diff --git 
a/proxy/src/main/java/org/apache/rocketmq/proxy/common/StartAndShutdown.java 
b/proxy/src/main/java/org/apache/rocketmq/proxy/common/StartAndShutdown.java
index 565e92c25..68712dbd7 100644
--- a/proxy/src/main/java/org/apache/rocketmq/proxy/common/StartAndShutdown.java
+++ b/proxy/src/main/java/org/apache/rocketmq/proxy/common/StartAndShutdown.java
@@ -18,4 +18,5 @@
 package org.apache.rocketmq.proxy.common;
 
 public interface StartAndShutdown extends Start, Shutdown {
+    default void preShutdown() throws Exception {}
 }

Reply via email to