MessageAgent优化
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -171,7 +171,7 @@
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>check</goal>
|
||||
<goal>apply</goal>
|
||||
</goals>
|
||||
<phase>compile</phase>
|
||||
</execution>
|
||||
|
||||
@@ -7,7 +7,6 @@ package org.redkale.mq.spi;
|
||||
|
||||
import java.lang.reflect.ParameterizedType;
|
||||
import java.lang.reflect.Type;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
@@ -554,17 +553,12 @@ public abstract class MessageAgent implements MessageManager {
|
||||
MessageConsumer m = this.consumer;
|
||||
return messageAgent.submit(() -> {
|
||||
Traces.computeIfAbsent(traceid);
|
||||
T msg = null;
|
||||
try {
|
||||
m.onMessage(context, (T) c.convertFrom(messageType, message));
|
||||
msg = (T) c.convertFrom(messageType, message);
|
||||
m.onMessage(context, msg);
|
||||
} catch (Throwable t) {
|
||||
messageAgent
|
||||
.getLogger()
|
||||
.log(
|
||||
Level.SEVERE,
|
||||
m.getClass().getSimpleName()
|
||||
+ " onMessage error, topic: " + context.getTopic()
|
||||
+ ", messages: " + new String(message, StandardCharsets.UTF_8),
|
||||
t);
|
||||
messageAgent.getLogger().log(Level.SEVERE, "MessageConsumer.onMessage error, message: " + msg, t);
|
||||
}
|
||||
Traces.removeTraceid();
|
||||
});
|
||||
|
||||
@@ -340,8 +340,12 @@ public class MessageAsmMethodBoost extends AsmMethodBoost {
|
||||
try {
|
||||
if (Utility.isNotEmpty(consumerBytes)) {
|
||||
if (newLoader == null) {
|
||||
newLoader = new RedkaleClassLoader.DynBytesClassLoader(
|
||||
classLoader == null ? Thread.currentThread().getContextClassLoader() : classLoader);
|
||||
if (classLoader instanceof RedkaleClassLoader.DynBytesClassLoader) {
|
||||
newLoader = (RedkaleClassLoader.DynBytesClassLoader) classLoader;
|
||||
} else {
|
||||
newLoader = new RedkaleClassLoader.DynBytesClassLoader(
|
||||
classLoader == null ? Thread.currentThread().getContextClassLoader() : classLoader);
|
||||
}
|
||||
}
|
||||
List<Class<? extends MessageConsumer>> consumers = new ArrayList<>();
|
||||
consumerBytes.forEach((clzName, bytes) -> {
|
||||
|
||||
Reference in New Issue
Block a user