perf[event]: remove unnecessary code and doc

This commit is contained in:
godotg committed 2022-12-01 18:21:51 +08:00
1 parent c5e5b0b04a
commit 44fffabad1
5 files changed
+11 -21

No files matched your search

@@ -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<? extends IEvent> eventType, IEventReceiver receiver,boolean asyncFlag) {
if(asyncFlag==true) {
public static void registerEventReceiver(Class<? extends IEvent> 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);
}
}
@@ -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);
@@ -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);
}
@@ -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());
@@ -30,6 +30,8 @@ public class MyController2 {
/**
* 同一个事件可以被重复注册和接受
*
* 异步事件会被不会立刻执行,注意日志打印的线程号
*/
@AsyncExecute
@EventReceiver