🚑 add more metrics catch (#12917)
This commit is contained in:
parent
4562932433
commit
b87746b19f
|
|
@ -43,7 +43,9 @@ public class MetricsEventBus {
|
|||
return;
|
||||
}
|
||||
MetricsDispatcher dispatcher = event.getMetricsDispatcher();
|
||||
Optional.ofNullable(dispatcher).ifPresent(d -> d.publishEvent(event));
|
||||
Optional.ofNullable(dispatcher).ifPresent(d -> {
|
||||
tryInvoke(() -> d.publishEvent(event));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -70,32 +72,22 @@ public class MetricsEventBus {
|
|||
*/
|
||||
public static <T> T post(MetricsEvent event, Supplier<T> targetSupplier, Function<T, Boolean> trFunction) {
|
||||
T result;
|
||||
tryInvoke(() -> {
|
||||
before(event);
|
||||
});
|
||||
tryInvoke(() -> before(event));
|
||||
if (trFunction == null) {
|
||||
try {
|
||||
result = targetSupplier.get();
|
||||
} catch (Throwable e) {
|
||||
tryInvoke(() -> {
|
||||
error(event);
|
||||
});
|
||||
tryInvoke(() -> error(event));
|
||||
throw e;
|
||||
}
|
||||
tryInvoke(() -> {
|
||||
after(event, result);
|
||||
});
|
||||
tryInvoke(() -> after(event, result));
|
||||
} else {
|
||||
// Custom failure status
|
||||
result = targetSupplier.get();
|
||||
if (trFunction.apply(result)) {
|
||||
tryInvoke(() -> {
|
||||
after(event, result);
|
||||
});
|
||||
tryInvoke(() -> after(event, result));
|
||||
} else {
|
||||
tryInvoke(() -> {
|
||||
error(event);
|
||||
});
|
||||
tryInvoke(() -> error(event));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
|
@ -105,8 +97,7 @@ public class MetricsEventBus {
|
|||
try {
|
||||
runnable.run();
|
||||
} catch (Throwable e) {
|
||||
logger.warn(COMMON_METRICS_COLLECTOR_EXCEPTION, "" +
|
||||
"", "", "invoke metric event error" + e.getMessage());
|
||||
logger.warn(COMMON_METRICS_COLLECTOR_EXCEPTION, "", "", "invoke metric event error" + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -117,20 +108,22 @@ public class MetricsEventBus {
|
|||
public static void before(MetricsEvent event) {
|
||||
MetricsDispatcher dispatcher = validate(event);
|
||||
if (dispatcher == null) return;
|
||||
dispatcher.publishEvent(event);
|
||||
tryInvoke(() -> dispatcher.publishEvent(event));
|
||||
}
|
||||
|
||||
public static void after(MetricsEvent event, Object result) {
|
||||
MetricsDispatcher dispatcher = validate(event);
|
||||
if (dispatcher == null) return;
|
||||
event.customAfterPost(result);
|
||||
dispatcher.publishFinishEvent((TimeCounterEvent) event);
|
||||
tryInvoke(() -> {
|
||||
event.customAfterPost(result);
|
||||
dispatcher.publishFinishEvent((TimeCounterEvent) event);
|
||||
});
|
||||
}
|
||||
|
||||
public static void error(MetricsEvent event) {
|
||||
MetricsDispatcher dispatcher = validate(event);
|
||||
if (dispatcher == null) return;
|
||||
dispatcher.publishErrorEvent((TimeCounterEvent) event);
|
||||
tryInvoke(() -> dispatcher.publishErrorEvent((TimeCounterEvent) event));
|
||||
}
|
||||
|
||||
private static MetricsDispatcher validate(MetricsEvent event) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue