From 3f1a23a15ece78a732623db3e27f09e1ac38719a Mon Sep 17 00:00:00 2001 From: hpd840321 Date: Sun, 10 May 2026 11:44:11 +0800 Subject: [PATCH] fix: remove _zh_CN suffix from messages basename, add graceful shutdown drain - messages basename: drop _zh_CN suffix (Spring auto-appends locale), eliminating repeated ResourceBundle WARN during every request - OrganizationServer: add @EventListener(ContextClosedEvent) with 30s drain delay to let in-flight requests complete before bean destruction begins --- .../deploy/run-verify/application.properties | 4 ++-- .../organization/OrganizationServer.java | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) 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); } });