From 5f7e089bd1ae7800681be782915e989feb52dcf5 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 12 Sep 2024 13:39:26 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E3=80=91=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E5=9C=A8?= =?UTF-8?q?=E5=A4=9A=E7=A7=9F=E6=88=B7=E4=B8=8B=EF=BC=8C=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=89=A7=E8=A1=8C=E7=9A=84=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/framework/tenant/core/job/TenantJobAspect.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java index a0c39c631..e375f9c33 100644 --- a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java @@ -47,7 +47,8 @@ public class TenantJobAspect { // TODO 芋艿:先通过 parallel 实现并行;1)多个租户,是一条执行日志;2)异常的情况 TenantUtils.execute(tenantId, () -> { try { - joinPoint.proceed(); + Object result = joinPoint.proceed(); + results.put(tenantId, StrUtil.toStringOrNull(result)); } catch (Throwable e) { results.put(tenantId, ExceptionUtil.getRootCauseMessage(e)); // 打印异常 From 85020318dba4f9873705b3c67959516febe69944 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 12 Sep 2024 13:59:49 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E3=80=91websocket=20=E5=85=81=E8=AE=B8=E4=B8=8D?= =?UTF-8?q?=E4=BC=A0=E9=80=92=20token=20=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../websocket/config/YudaoWebSocketAutoConfiguration.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/YudaoWebSocketAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/YudaoWebSocketAutoConfiguration.java index 0f08b7cf5..cabceb807 100644 --- a/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/YudaoWebSocketAutoConfiguration.java +++ b/yudao-framework/yudao-spring-boot-starter-websocket/src/main/java/cn/iocoder/yudao/framework/websocket/config/YudaoWebSocketAutoConfiguration.java @@ -5,6 +5,7 @@ import cn.iocoder.yudao.framework.mq.redis.core.RedisMQTemplate; import cn.iocoder.yudao.framework.websocket.core.handler.JsonWebSocketMessageHandler; import cn.iocoder.yudao.framework.websocket.core.listener.WebSocketMessageListener; import cn.iocoder.yudao.framework.websocket.core.security.LoginUserHandshakeInterceptor; +import cn.iocoder.yudao.framework.websocket.core.security.WebSocketAuthorizeRequestsCustomizer; import cn.iocoder.yudao.framework.websocket.core.sender.kafka.KafkaWebSocketMessageConsumer; import cn.iocoder.yudao.framework.websocket.core.sender.kafka.KafkaWebSocketMessageSender; import cn.iocoder.yudao.framework.websocket.core.sender.local.LocalWebSocketMessageSender; @@ -76,6 +77,11 @@ public class YudaoWebSocketAutoConfiguration { return new WebSocketSessionManagerImpl(); } + @Bean + public WebSocketAuthorizeRequestsCustomizer webSocketAuthorizeRequestsCustomizer(WebSocketProperties webSocketProperties) { + return new WebSocketAuthorizeRequestsCustomizer(webSocketProperties); + } + // ==================== Sender 相关 ==================== @Configuration From 538b5f5d3ccba6cfd1fd58a80850ef5d0de4dd04 Mon Sep 17 00:00:00 2001 From: Lcp <2767378157@qq.com> Date: Sat, 14 Sep 2024 22:10:25 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E3=80=91=E5=A4=9A=E7=A7=9F=E6=88=B7=E4=B8=8B=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E7=BB=93=E6=9E=9C=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=83=BD=E4=B8=BA=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/tenant/core/job/TenantJobAspect.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java index e375f9c33..61efa15a5 100644 --- a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java @@ -42,15 +42,16 @@ public class TenantJobAspect { } // 逐个租户,执行 Job - Map results = new ConcurrentHashMap<>(); + Map success = new ConcurrentHashMap<>(); + Map fail = new ConcurrentHashMap<>(); tenantIds.parallelStream().forEach(tenantId -> { // TODO 芋艿:先通过 parallel 实现并行;1)多个租户,是一条执行日志;2)异常的情况 TenantUtils.execute(tenantId, () -> { try { Object result = joinPoint.proceed(); - results.put(tenantId, StrUtil.toStringOrNull(result)); + success.put(tenantId, StrUtil.toStringOrNull(result)); } catch (Throwable e) { - results.put(tenantId, ExceptionUtil.getRootCauseMessage(e)); + fail.put(tenantId, ExceptionUtil.getRootCauseMessage(e)); // 打印异常 XxlJobHelper.log(StrUtil.format("[多租户({}) 执行任务({}),发生异常:{}]", tenantId, joinPoint.getSignature(), ExceptionUtils.getStackTrace(e))); @@ -58,8 +59,11 @@ public class TenantJobAspect { }); }); // 如果 results 非空,说明发生了异常,标记 XXL-Job 执行失败 - if (CollUtil.isNotEmpty(results)) { - XxlJobHelper.handleFail(JsonUtils.toJsonString(results)); + if (CollUtil.isNotEmpty(fail)) { + XxlJobHelper.handleFail(JsonUtils.toJsonString(fail)); + } + else { + XxlJobHelper.handleSuccess(JsonUtils.toJsonString(success)); } } From 736fc93df561998ca5012fda6c9c4ca80bcd933d Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 17 Sep 2024 12:04:45 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E3=80=90=E5=8A=9F=E8=83=BD=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E3=80=91=E5=A4=9A=E7=A7=9F=E6=88=B7=E4=B8=8B=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E4=BB=BB=E5=8A=A1=E7=BB=93=E6=9E=9C=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=83=BD=E4=B8=BA=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tenant/core/job/TenantJobAspect.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java index 61efa15a5..d2ae112ca 100644 --- a/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java +++ b/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/job/TenantJobAspect.java @@ -17,6 +17,7 @@ import org.aspectj.lang.annotation.Aspect; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicBoolean; /** * 多租户 JobHandler AOP @@ -42,28 +43,28 @@ public class TenantJobAspect { } // 逐个租户,执行 Job - Map success = new ConcurrentHashMap<>(); - Map fail = new ConcurrentHashMap<>(); + Map results = new ConcurrentHashMap<>(); + AtomicBoolean success = new AtomicBoolean(true); // 标记,是否存在失败的情况 tenantIds.parallelStream().forEach(tenantId -> { // TODO 芋艿:先通过 parallel 实现并行;1)多个租户,是一条执行日志;2)异常的情况 TenantUtils.execute(tenantId, () -> { try { Object result = joinPoint.proceed(); - success.put(tenantId, StrUtil.toStringOrNull(result)); + results.put(tenantId, StrUtil.toStringOrNull(result)); } catch (Throwable e) { - fail.put(tenantId, ExceptionUtil.getRootCauseMessage(e)); + results.put(tenantId, ExceptionUtil.getRootCauseMessage(e)); + success.set(false); // 打印异常 XxlJobHelper.log(StrUtil.format("[多租户({}) 执行任务({}),发生异常:{}]", tenantId, joinPoint.getSignature(), ExceptionUtils.getStackTrace(e))); } }); }); - // 如果 results 非空,说明发生了异常,标记 XXL-Job 执行失败 - if (CollUtil.isNotEmpty(fail)) { - XxlJobHelper.handleFail(JsonUtils.toJsonString(fail)); - } - else { - XxlJobHelper.handleSuccess(JsonUtils.toJsonString(success)); + // 记录执行结果 + if (success.get()) { + XxlJobHelper.handleSuccess(JsonUtils.toJsonString(results)); + } else { + XxlJobHelper.handleFail(JsonUtils.toJsonString(results)); } } From 94125441afe43488d2b7b42bce6b5f3dd5eca19f Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 17 Sep 2024 17:33:00 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E3=80=90=E4=BE=9D=E8=B5=96=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E3=80=91netty=20from=204.1.111=20to=204.1.113?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yudao-dependencies/pom.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/yudao-dependencies/pom.xml b/yudao-dependencies/pom.xml index 3c885327f..f7e19bc91 100644 --- a/yudao-dependencies/pom.xml +++ b/yudao-dependencies/pom.xml @@ -69,6 +69,7 @@ 2.7.0 3.0.6 0.10.2 + 4.1.113.Final 3.5.0 4.11.0 @@ -83,6 +84,13 @@ + + io.netty + netty-bom + ${netty.version} + pom + import + org.springframework.boot spring-boot-dependencies