From 44fffabad144f469098d861ebf043697fe4590a5 Mon Sep 17 00:00:00 2001 From: godotg Date: Thu, 1 Dec 2022 18:21:51 +0800 Subject: [PATCH] perf[event]: remove unnecessary code and doc --- .../java/com/zfoo/event/manager/EventBus.java | 17 +++++------------ .../event/schema/EventRegisterProcessor.java | 6 ++---- .../java/com/zfoo/event/ApplicationTest.java | 6 +----- .../test/java/com/zfoo/event/MyController1.java | 1 + .../test/java/com/zfoo/event/MyController2.java | 2 ++ 5 files changed, 11 insertions(+), 21 deletions(-) diff --git a/event/src/main/java/com/zfoo/event/manager/EventBus.java b/event/src/main/java/com/zfoo/event/manager/EventBus.java index 14db8582..f52d2160 100644 --- a/event/src/main/java/com/zfoo/event/manager/EventBus.java +++ b/event/src/main/java/com/zfoo/event/manager/EventBus.java @@ -89,6 +89,7 @@ public abstract class EventBus { return thread; } } + /** * 处理事件 */ @@ -96,10 +97,9 @@ public abstract class EventBus { syncSubmit(event); asyncSubmit(event); } + /** * 同步抛出一个事件,会在当前线程中运行(只有同步观察者会处理事件) - * - * @param event 需要抛出的事件 */ public static void syncSubmit(IEvent event) { var list = receiverMapSync.get(event.getClass()); @@ -112,8 +112,6 @@ public abstract class EventBus { /** * 异步抛出一个事件,事件不在同一个线程中处理(只有异步观察者会处理事件) - * - * @param event 需要抛出的事件 */ public static void asyncSubmit(IEvent event) { var list = receiverMapAsync.get(event.getClass()); @@ -130,9 +128,6 @@ public abstract class EventBus { /** * 用指定线程执行 - * - * @param hashcode - * @return */ public static void execute(int hashcode, Runnable runnable) { executors[Math.abs(hashcode % EXECUTORS_SIZE)].execute(SafeRunnable.valueOf(runnable)); @@ -159,12 +154,10 @@ public abstract class EventBus { /** * 注册事件及其对应同异步观察者 */ - public static void registerEventReceiver(Class eventType, IEventReceiver receiver,boolean asyncFlag) { - if(asyncFlag==true) { + public static void registerEventReceiver(Class eventType, IEventReceiver receiver, boolean asyncFlag) { + if (asyncFlag) { receiverMapAsync.computeIfAbsent(eventType, it -> new LinkedList<>()).add(receiver); - } - else - { + } else { receiverMapSync.computeIfAbsent(eventType, it -> new LinkedList<>()).add(receiver); } } diff --git a/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java b/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java index 8e89499d..5b888482 100644 --- a/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java +++ b/event/src/main/java/com/zfoo/event/schema/EventRegisterProcessor.java @@ -84,11 +84,9 @@ public class EventRegisterProcessor implements BeanPostProcessor { var enhanceReceiverDefinition = EnhanceUtils.createEventReceiver(receiverDefinition); //异步执行标志,false表示同步执行,true表示异步执行 - boolean asyncFlag=false; - if(method.isAnnotationPresent(AsyncExecute.class)) - asyncFlag=true; + var asyncFlag = method.isAnnotationPresent(AsyncExecute.class); // key:class类型 value:观察者 注册Event的receiverMap中 - EventBus.registerEventReceiver(eventClazz, enhanceReceiverDefinition,asyncFlag); + EventBus.registerEventReceiver(eventClazz, enhanceReceiverDefinition, asyncFlag); } } catch (Throwable t) { throw new RuntimeException(t); diff --git a/event/src/test/java/com/zfoo/event/ApplicationTest.java b/event/src/test/java/com/zfoo/event/ApplicationTest.java index b63cb995..10ad8479 100644 --- a/event/src/test/java/com/zfoo/event/ApplicationTest.java +++ b/event/src/test/java/com/zfoo/event/ApplicationTest.java @@ -35,12 +35,8 @@ public class ApplicationTest { // 事件的接受需要在被Spring管理的bean的方法上加上@EventReceiver注解,即可自动注册事件的监听 // 参考MyController1中的标准注册方法 - // 抛出同步事件,事件会被当前线程立刻执行,注意日志打印的线程号 -// EventBus.syncSubmit(MyNoticeEvent.valueOf("同步事件")); -// -// // 抛出异步事件,事件会被不会立刻执行,注意日志打印的线程号 -// EventBus.asyncSubmit(MyNoticeEvent.valueOf("异步事件")); EventBus.submit(MyNoticeEvent.valueOf("处理事件")); + // 睡眠3秒,等待异步事件执行完 ThreadUtils.sleep(3000); } diff --git a/event/src/test/java/com/zfoo/event/MyController1.java b/event/src/test/java/com/zfoo/event/MyController1.java index 47195780..61b67147 100644 --- a/event/src/test/java/com/zfoo/event/MyController1.java +++ b/event/src/test/java/com/zfoo/event/MyController1.java @@ -27,6 +27,7 @@ public class MyController1 { private static final Logger logger = LoggerFactory.getLogger(MyController1.class); + // 事件会被当前线程立刻执行,注意日志打印的线程号 @EventReceiver public void onMyNoticeEvent(MyNoticeEvent event) { logger.info("方法1同步执行事件:" + event.getMessage()); diff --git a/event/src/test/java/com/zfoo/event/MyController2.java b/event/src/test/java/com/zfoo/event/MyController2.java index 238abc60..e63f919f 100644 --- a/event/src/test/java/com/zfoo/event/MyController2.java +++ b/event/src/test/java/com/zfoo/event/MyController2.java @@ -30,6 +30,8 @@ public class MyController2 { /** * 同一个事件可以被重复注册和接受 + * + * 异步事件会被不会立刻执行,注意日志打印的线程号 */ @AsyncExecute @EventReceiver