fix(iot): 修复保洁规则处理器租户上下文丢失问题
使用 TenantUtils.execute 包装消息处理逻辑,确保 Redis Stream 异步线程中正确传递租户上下文,避免数据库查询时报错 "TenantContextHolder 不存在租户编号" Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package com.viewsh.module.iot.mq.consumer.rule;
|
package com.viewsh.module.iot.mq.consumer.rule;
|
||||||
|
|
||||||
|
import com.viewsh.framework.tenant.core.util.TenantUtils;
|
||||||
import com.viewsh.module.iot.core.messagebus.core.IotMessageBus;
|
import com.viewsh.module.iot.core.messagebus.core.IotMessageBus;
|
||||||
import com.viewsh.module.iot.core.messagebus.core.IotMessageSubscriber;
|
import com.viewsh.module.iot.core.messagebus.core.IotMessageSubscriber;
|
||||||
import com.viewsh.module.iot.core.mq.message.IotDeviceMessage;
|
import com.viewsh.module.iot.core.mq.message.IotDeviceMessage;
|
||||||
@@ -48,12 +49,14 @@ public class IotCleanRuleMessageHandler implements IotMessageSubscriber<IotDevic
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMessage(IotDeviceMessage message) {
|
public void onMessage(IotDeviceMessage message) {
|
||||||
try {
|
TenantUtils.execute(message.getTenantId(), () -> {
|
||||||
cleanRuleProcessorManager.processMessage(message);
|
try {
|
||||||
} catch (Exception e) {
|
cleanRuleProcessorManager.processMessage(message);
|
||||||
// 规则处理异常不影响其他消息处理
|
} catch (Exception e) {
|
||||||
log.error("[onMessage][消息({}) 保洁规则处理异常]", message.getRequestId(), e);
|
// 规则处理异常不影响其他消息处理
|
||||||
}
|
log.error("[onMessage][消息({}) 保洁规则处理异常]", message.getRequestId(), e);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user