update(REQ-2516) - 克制 Starter 中的日志打印,配合 logback 配置按需进行输出
This commit is contained in:
parent
844990df3f
commit
75bfe60884
@ -69,8 +69,10 @@ public class StarterBroadcastMQConfiguration {
|
|||||||
Consumer<EventConsumer.EventWrapper> callback = eventWrapper -> {
|
Consumer<EventConsumer.EventWrapper> callback = eventWrapper -> {
|
||||||
if (eventWrapper.isHandled()) {
|
if (eventWrapper.isHandled()) {
|
||||||
// 只收集被App真正消费的消息.
|
// 只收集被App真正消费的消息.
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
Event event = eventWrapper.getEvent();
|
Event event = eventWrapper.getEvent();
|
||||||
log.info("WorkflowEngine Broadcast MQ, handled event: {}", event.toPrettyJsonString());
|
log.debug("WorkflowEngine Broadcast MQ, handled event: {}", event.toPrettyJsonString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return new DefaultEventConsumer(applicationName, eventHandlerRepository, callback);
|
return new DefaultEventConsumer(applicationName, eventHandlerRepository, callback);
|
||||||
|
|||||||
@ -33,6 +33,16 @@ public class WorkflowEngineStarterProperties {
|
|||||||
*/
|
*/
|
||||||
private Boolean joinContainerGroup = false;
|
private Boolean joinContainerGroup = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <h3>该参数只针对<strong color=orange>非</strong>容器环境生效</h3>
|
||||||
|
* 配合 joinContainerGroup 使用,且只在 joinContainerGroup = false 时生效
|
||||||
|
* <pre>
|
||||||
|
* 在本地有多台开发机同时启动时,又会组成新的集群消费,也会导致消息异常消费,
|
||||||
|
* 所以该参数就是为了创建完全唯一的消费者,避免本地开发机组成集群。
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
private String specialId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* WorkflowCoreService 类中所有方法未标记{@link InvokeMode}注解的方法调用时, 默认采用的模式
|
* WorkflowCoreService 类中所有方法未标记{@link InvokeMode}注解的方法调用时, 默认采用的模式
|
||||||
*
|
*
|
||||||
@ -68,6 +78,14 @@ public class WorkflowEngineStarterProperties {
|
|||||||
this.joinContainerGroup = joinContainerGroup;
|
this.joinContainerGroup = joinContainerGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getSpecialId() {
|
||||||
|
return specialId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpecialId(String specialId) {
|
||||||
|
this.specialId = specialId;
|
||||||
|
}
|
||||||
|
|
||||||
public RpcInvokeModeEnum getInvokeMode() {
|
public RpcInvokeModeEnum getInvokeMode() {
|
||||||
return invokeMode;
|
return invokeMode;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,6 +32,7 @@ public class NonContainerEnvironmentCondition implements Condition {
|
|||||||
@Override
|
@Override
|
||||||
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
|
public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
|
||||||
ConfigurableEnvironment environment = (ConfigurableEnvironment) context.getEnvironment();
|
ConfigurableEnvironment environment = (ConfigurableEnvironment) context.getEnvironment();
|
||||||
|
// 依赖 K8S 设置的环境变量信息,如果变量的 key 发生变化,会导致此处的功能可能出现异常
|
||||||
String myPodNamespace = environment.getProperty(K8S_POD_NAME_SPACE);
|
String myPodNamespace = environment.getProperty(K8S_POD_NAME_SPACE);
|
||||||
String activeProfile = environment.getProperty(NACOS_PROFILES_ACTIVE);
|
String activeProfile = environment.getProperty(NACOS_PROFILES_ACTIVE);
|
||||||
if (!StringUtils.hasText(activeProfile)) {
|
if (!StringUtils.hasText(activeProfile)) {
|
||||||
@ -49,10 +50,14 @@ public class NonContainerEnvironmentCondition implements Condition {
|
|||||||
// 获取默认值
|
// 获取默认值
|
||||||
joinContainerGroup = new WorkflowEngineStarterProperties().getJoinContainerGroup();
|
joinContainerGroup = new WorkflowEngineStarterProperties().getJoinContainerGroup();
|
||||||
}
|
}
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("workflow engine starter join-container-group status: {} ", joinContainerGroup);
|
log.debug("workflow engine starter join-container-group status: {} ", joinContainerGroup);
|
||||||
|
}
|
||||||
|
|
||||||
|
String specialId = environment.getProperty("workflow.engine.starter.special-id", String.class);
|
||||||
environment.getSystemProperties().put(MQ_GID_NAME_SEGMENT,
|
environment.getSystemProperties().put(MQ_GID_NAME_SEGMENT,
|
||||||
joinContainerGroup ? activeProfile : activeProfile + DEBUGGING_MQ_SUFFIX);
|
joinContainerGroup ? activeProfile :
|
||||||
|
activeProfile + (StringUtils.hasText(specialId) ? "_" + specialId : "") + DEBUGGING_MQ_SUFFIX);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,13 +16,19 @@ public final class LogInterceptor extends AbstractListenerInterceptor {
|
|||||||
public <T> void execute(ListenerExecutor executor, Consumer<T> consumer, EventConsumer.Context context, T t) {
|
public <T> void execute(ListenerExecutor executor, Consumer<T> consumer, EventConsumer.Context context, T t) {
|
||||||
StopWatch stopWatch = new StopWatch();
|
StopWatch stopWatch = new StopWatch();
|
||||||
stopWatch.start();
|
stopWatch.start();
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("--- starting handle mq ---- ");
|
log.debug("--- starting handle mq ---- ");
|
||||||
|
}
|
||||||
|
if (log.isInfoEnabled()) {
|
||||||
log.info("messageId: {}, eventCode: {}, messageBody: {}", context.getMsgId(), context.getEventCode().toString(), JSON.toJSONString(t));
|
log.info("messageId: {}, eventCode: {}, messageBody: {}", context.getMsgId(), context.getEventCode().toString(), JSON.toJSONString(t));
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
getNext().execute(executor, consumer, context, t);
|
getNext().execute(executor, consumer, context, t);
|
||||||
} finally {
|
} finally {
|
||||||
stopWatch.stop();
|
stopWatch.stop();
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("--- messageId: {} finished ,timeCost:{} ms ---", executor.getClass().getSimpleName(), stopWatch.getTotalTimeMillis());
|
log.debug("--- messageId: {} finished ,timeCost:{} ms ---", executor.getClass().getSimpleName(), stopWatch.getTotalTimeMillis());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,7 +35,7 @@ public class WorkflowEngineBroadcastEventListener implements EventHandler, Initi
|
|||||||
@Override
|
@Override
|
||||||
public void onEvent(Event event, EventConsumer.Context context) {
|
public void onEvent(Event event, EventConsumer.Context context) {
|
||||||
if (Objects.isNull(event) || Objects.isNull(event.getEventCode())) {
|
if (Objects.isNull(event) || Objects.isNull(event.getEventCode())) {
|
||||||
log.warn("illegal event code: {}", event);
|
log.warn("illegal event code: {}", JSON.toJSONString(event));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -128,9 +128,13 @@ public class WorkflowEngineStarterRetryEventListener implements EventHandler, In
|
|||||||
// 事件处理 RPC 请求, 强制使用同步模式
|
// 事件处理 RPC 请求, 强制使用同步模式
|
||||||
ThreadUtil.set(SYNC);
|
ThreadUtil.set(SYNC);
|
||||||
Object[] args = convertToActualArgs(mapping.getMethod(), dto.getParameters());
|
Object[] args = convertToActualArgs(mapping.getMethod(), dto.getParameters());
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("event rpc request args: {}", JSON.toJSONString(args));
|
log.debug("event rpc request args: {}", JSON.toJSONString(args));
|
||||||
|
}
|
||||||
Object invoke = mapping.getMethod().invoke(mapping.getInterfaceObject(), args);
|
Object invoke = mapping.getMethod().invoke(mapping.getInterfaceObject(), args);
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Event Invoke Result: {}", JSON.toJSONString(invoke));
|
log.debug("Event Invoke Result: {}", JSON.toJSONString(invoke));
|
||||||
|
}
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
// 能抛出异常目前只有两种情况, 一个是网络异常, 另一个是对端服务内部异常
|
// 能抛出异常目前只有两种情况, 一个是网络异常, 另一个是对端服务内部异常
|
||||||
Throwable cause = getRealCause(e);
|
Throwable cause = getRealCause(e);
|
||||||
|
|||||||
@ -49,7 +49,9 @@ public class RpcInvokeEventProducer extends RocketMQEventProducer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void send(@NonNull Event event, @NonNull Context context) {
|
public void send(@NonNull Event event, @NonNull Context context) {
|
||||||
log.info("发送事件内容: {}", event.toPrettyJsonString());
|
if (log.isDebugEnabled()) {
|
||||||
|
log.debug("发送事件内容: {}", event.toPrettyJsonString());
|
||||||
|
}
|
||||||
if (sendBeforeCallback != null) {
|
if (sendBeforeCallback != null) {
|
||||||
sendBeforeCallback.accept(event, context);
|
sendBeforeCallback.accept(event, context);
|
||||||
}
|
}
|
||||||
@ -101,8 +103,10 @@ public class RpcInvokeEventProducer extends RocketMQEventProducer {
|
|||||||
getAfterCommitExecutor().executeAndRollback(runnable, rollbackRunnable);
|
getAfterCommitExecutor().executeAndRollback(runnable, rollbackRunnable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (log.isDebugEnabled()) {
|
||||||
List<Runnable> runnables = ListUtils.emptyIfNull(getAfterCommitExecutor().getRunnables());
|
List<Runnable> runnables = ListUtils.emptyIfNull(getAfterCommitExecutor().getRunnables());
|
||||||
log.info("runnables.size(): {}", runnables.size());
|
log.debug("runnables.size(): {}", runnables.size());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user