fix(): 处理事件监听器执行异常问题
parent
a2f2d2ec52
commit
9f0f373594
|
@ -1,5 +1,6 @@
|
|||
package com.muyu.event.process.basic;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
@ -10,6 +11,7 @@ import java.util.List;
|
|||
* @Date 2024/9/30 15:37
|
||||
* @Description 基础事件处理器
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class BasicEventHandler<T> implements ApplicationListener<BasicEvent<T>> {
|
||||
|
||||
|
@ -34,6 +36,12 @@ public class BasicEventHandler<T> implements ApplicationListener<BasicEvent<T>>
|
|||
*/
|
||||
@Override
|
||||
public void onApplicationEvent(BasicEvent<T> event) {
|
||||
listeners.forEach(l -> l.onEvent(event));
|
||||
listeners.forEach(l -> {
|
||||
try {
|
||||
l.onEvent(event);
|
||||
} catch (Exception e) {
|
||||
log.error("{}监听器处理事件时发生异常:{}", l, e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package com.muyu.event.process.listener;
|
||||
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.muyu.common.core.exception.ServiceException;
|
||||
import com.muyu.enterprise.domain.FaultRule;
|
||||
import com.muyu.event.process.basic.BasicEvent;
|
||||
import com.muyu.event.process.basic.BasicEventListener;
|
||||
|
@ -11,6 +12,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* @Author: zi run
|
||||
|
@ -31,8 +33,10 @@ public class IdentifyingFailuresEventListener implements BasicEventListener<Stri
|
|||
public void onEvent(BasicEvent<String> event) {
|
||||
log.info("触发识别故障时间监听器……");
|
||||
JSONObject data = JSONObject.parseObject(event.getData());
|
||||
Map<String, Object> dataMap = (Map<String, Object>) cacheUtil.get((String) data.get("vin"));
|
||||
FaultRule faultRule = (FaultRule) dataMap.get(CacheHandlerConstants.FAULT_RULE_KEY);
|
||||
|
||||
Optional<Map<String, Object>> optionalDataMap =
|
||||
Optional.ofNullable((Map<String, Object>) cacheUtil.get((String) data.get("vin")));
|
||||
optionalDataMap
|
||||
.map(dataMap -> (FaultRule) dataMap.get(CacheHandlerConstants.FAULT_RULE_KEY))
|
||||
.orElseThrow(() -> new ServiceException("故障规则未找到"));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue