diff --git a/backend/ninca-common-component-organization/cwos-component-organization-starter/deploy/run-verify/application.properties b/backend/ninca-common-component-organization/cwos-component-organization-starter/deploy/run-verify/application.properties index 4b658b7a..768b0cfa 100644 --- a/backend/ninca-common-component-organization/cwos-component-organization-starter/deploy/run-verify/application.properties +++ b/backend/ninca-common-component-organization/cwos-component-organization-starter/deploy/run-verify/application.properties @@ -43,8 +43,8 @@ spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true spring.http.encoding.force=true -# --- i18n(BOOT-INF 同名)--- -spring.messages.basename=messages_zh_CN,component-account/messages_zh_CN,component-resource/messages_zh_CN,core-aggregate/messages_zh_CN,core-device/messages_zh_CN,devicesdk/messages_zh_CN,component-org/messages_zh_CN +# --- i18n(BOOT-INF 同名。basename 勿带 _zh_CN 后缀,Spring 自动按 locale 追加)--- +spring.messages.basename=messages,component-account/messages,component-resource/messages,core-aggregate/messages,core-device/messages,devicesdk/messages,component-org/messages # --- 上传限制 --- cloudwalk.multipart.maxFileSize=50MB diff --git a/backend/ninca-common-component-organization/cwos-component-organization-starter/src/main/java/cn/cloudwalk/starter/organization/OrganizationServer.java b/backend/ninca-common-component-organization/cwos-component-organization-starter/src/main/java/cn/cloudwalk/starter/organization/OrganizationServer.java index 3bdbeaed..76641112 100644 --- a/backend/ninca-common-component-organization/cwos-component-organization-starter/src/main/java/cn/cloudwalk/starter/organization/OrganizationServer.java +++ b/backend/ninca-common-component-organization/cwos-component-organization-starter/src/main/java/cn/cloudwalk/starter/organization/OrganizationServer.java @@ -21,6 +21,9 @@ import org.springframework.cloud.netflix.hystrix.EnableHystrix; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.context.event.ContextClosedEvent; +import org.springframework.context.event.EventListener; +import org.springframework.core.annotation.Order; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.http.HttpMethod; import org.springframework.http.client.ClientHttpRequestFactory; @@ -63,7 +66,20 @@ implements WebApplicationInitializer { protected HttpUriRequest createHttpUriRequest(HttpMethod httpMethod, URI uri) { if (HttpMethod.DELETE == httpMethod) { return new VMSHttpEntityEnclosingRequestBase(uri); - } + @EventListener + @Order(0) + public void onShutdown(ContextClosedEvent event) { + log.info("Graceful shutdown: draining in-flight requests ({}ms)...", SHUTDOWN_DRAIN_MS); + try { + Thread.sleep(SHUTDOWN_DRAIN_MS); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } + log.info("Graceful shutdown: drain complete"); + } + + private static final long SHUTDOWN_DRAIN_MS = 30_000L; +} return super.createHttpUriRequest(httpMethod, uri); } });