Commit 8f3d0b68 authored by 王亮's avatar 王亮

add grace shutdown after 4s delay.

parent 4f138e89
......@@ -16,7 +16,7 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- <maven.test.skip>true</maven.test.skip>-->
<maven.javadoc.skip>true</maven.javadoc.skip>
<revision>2.6.3.10</revision>
<revision>2.6.3.11</revision>
<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
<maven-source-plugin.version>3.2.1</maven-source-plugin.version>
<maven-javadoc-plugin.version>3.3.1</maven-javadoc-plugin.version>
......
......@@ -11,7 +11,7 @@
<packaging>pom</packaging>
<properties>
<revision>2.6.3.10</revision>
<revision>2.6.3.11</revision>
<spring-boot.version>2.6.3</spring-boot.version>
<spring-cloud.version>2021.0.1</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version>
......
......@@ -6,6 +6,7 @@ import feign.Feign;
import feign.RequestInterceptor;
import org.slf4j.MDC;
import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint;
import org.springframework.boot.actuate.context.ShutdownEndpoint;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
......@@ -28,23 +29,26 @@ public class DisCoveryAutoConfiguration {
final NacosAutoServiceRegistration nacosAutoServiceRegistration;
public DisCoveryAutoConfiguration(NacosAutoServiceRegistration nacosAutoServiceRegistration) {
final ShutdownEndpoint shutdownEndpoint;
public DisCoveryAutoConfiguration(NacosAutoServiceRegistration nacosAutoServiceRegistration,
ShutdownEndpoint shutdownEndpoint) {
this.nacosAutoServiceRegistration = nacosAutoServiceRegistration;
this.shutdownEndpoint = shutdownEndpoint;
}
@Bean
@ConditionalOnMissingBean
@ConditionalOnAvailableEndpoint
@DependsOn(value = {"xxlJobSpringExecutor"})
public ServiceDeployEndpoint serviceDeployEndpoint(
NacosAutoServiceRegistration nacosAutoServiceRegistration) {
return new ServiceDeployEndpoint(nacosAutoServiceRegistration);
return new ServiceDeployEndpoint(nacosAutoServiceRegistration, shutdownEndpoint);
}
@LoadBalancerClients({
@LoadBalancerClient(value = "price-tracker", configuration = CustomLoadBalancerConfiguration.class),
@LoadBalancerClient(value = "sc-task", configuration = CustomLoadBalancerConfiguration.class),
@LoadBalancerClient(value = "sc-auth", configuration = CustomLoadBalancerConfiguration.class)}
)
@LoadBalancerClient(value = "sc-auth", configuration = CustomLoadBalancerConfiguration.class)})
public class FeignConfig {
@LoadBalanced
......@@ -63,6 +67,7 @@ public class DisCoveryAutoConfiguration {
public RequestLoggingFilter requestLoggingFilter() {
return new RequestLoggingFilter();
}
@Bean
public CommonsRequestLoggingFilter logFilter(RequestLoggingFilter requestLoggingFilter) {
requestLoggingFilter.setIncludeQueryString(true);
......
......@@ -2,26 +2,40 @@ package cn.quantgroup.boot;
import com.alibaba.cloud.nacos.registry.NacosAutoServiceRegistration;
import java.util.Timer;
import java.util.TimerTask;
import org.springframework.boot.actuate.context.ShutdownEndpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.boot.actuate.endpoint.annotation.WriteOperation;
import org.springframework.boot.actuate.endpoint.web.annotation.WebEndpoint;
@WebEndpoint(id = "serviceDeploy")
public class ServiceDeployEndpoint {
final NacosAutoServiceRegistration nacosAutoServiceRegistration;
final ShutdownEndpoint shutdownEndpoint;
public ServiceDeployEndpoint(NacosAutoServiceRegistration nacosAutoServiceRegistration) {
public ServiceDeployEndpoint(NacosAutoServiceRegistration nacosAutoServiceRegistration,
ShutdownEndpoint shutdownEndpoint) {
this.nacosAutoServiceRegistration = nacosAutoServiceRegistration;
this.shutdownEndpoint = shutdownEndpoint;
}
@ReadOperation
public String offLine() {
nacosAutoServiceRegistration.stop();
new Timer().schedule(new TimerTask(
) {
@Override
public void run() {
shutdownEndpoint.shutdown();
}
}, 4000L);
return "ok";
}
@WriteOperation
public String onLine(){
public String onLine() {
nacosAutoServiceRegistration.start();
return "ok";
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment