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 {}
}