in ons-core/ons-trace-core/src/main/java/org/apache/rocketmq/ons/open/trace/core/dispatch/impl/AsyncArrayDispatcher.java [170:189]
public void registerShutDownHook() {
if (shutDownHook == null) {
shutDownHook = new ThreadFactoryImpl("ShutdownHookMQTrace").newThread(new Runnable() {
private volatile boolean hasShutdown = false;
@Override
public void run() {
synchronized (this) {
if (!this.hasShutdown) {
try {
flush();
} catch (IOException e) {
CLIENT_LOG.error("system mqtrace hook shutdown failed ,maybe loss some trace data");
}
}
}
}
});
Runtime.getRuntime().addShutdownHook(shutDownHook);
}
}