From 6e4b4f4205417d52d9174114e5fd24a874d67656 Mon Sep 17 00:00:00 2001 From: luca Date: Wed, 12 Jun 2024 11:49:40 +0800 Subject: [PATCH] perf[event]: support the reimplementation of exception handling --- .../java/com/zfoo/event/manager/EventBus.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 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 29ff9d27..833e5d23 100644 --- a/event/src/main/java/com/zfoo/event/manager/EventBus.java +++ b/event/src/main/java/com/zfoo/event/manager/EventBus.java @@ -34,7 +34,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.BiConsumer; import java.util.function.Consumer; /** @@ -61,7 +60,10 @@ public abstract class EventBus { /** * event exception handler */ - public static BiConsumer exceptionFunction = (receiver, event) -> {}; + public static TriConsumer exceptionFunction = (receiver, event, throwable) -> { + logger.error("bean:[{}] event:[{}] unhandled exception", receiver.getBean().getClass().getSimpleName(), event.getClass().getSimpleName(), throwable); + post(new ExceptionEvent(receiver, event, throwable)); + }; /** * event noReceiver handler */ @@ -127,12 +129,15 @@ public abstract class EventBus { try { receiver.invoke(event); } catch (Throwable t) { - logger.error("bean:[{}] event:[{}] unhandled exception", receiver.getBean().getClass().getSimpleName(), event.getClass().getSimpleName(), t); - exceptionFunction.accept(receiver, event); - post(new ExceptionEvent(receiver, event, t)); + exceptionFunction.accept(receiver, event, t); } } + @FunctionalInterface + public interface TriConsumer { + void accept(T t, U u, V v); + } + public static void asyncExecute(Runnable runnable) { asyncExecute(RandomUtils.randomInt(), runnable); }