diff --git a/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/service/SceneService.java b/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/service/SceneService.java index 8d09f423..a5179cc0 100644 --- a/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/service/SceneService.java +++ b/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/service/SceneService.java @@ -1,6 +1,7 @@ package org.jetlinks.community.rule.engine.service; import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.hswebframework.web.crud.events.EntityCreatedEvent; import org.hswebframework.web.crud.events.EntityDeletedEvent; import org.hswebframework.web.crud.events.EntityModifyEvent; @@ -13,6 +14,7 @@ import org.jetlinks.community.rule.engine.scene.SceneRule; import org.jetlinks.community.rule.engine.web.request.SceneExecuteRequest; import org.jetlinks.rule.engine.api.RuleData; import org.jetlinks.rule.engine.api.RuleEngine; +import org.springframework.boot.CommandLineRunner; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -27,7 +29,8 @@ import java.util.Map; @Service @AllArgsConstructor -public class SceneService extends GenericReactiveCrudService { +@Slf4j +public class SceneService extends GenericReactiveCrudService implements CommandLineRunner { private final RuleEngine ruleEngine; @@ -164,4 +167,19 @@ public class SceneService extends GenericReactiveCrudService Mono + .defer(() -> ruleEngine.startRule(e.getId(), e.toRule().getModel()).then()) + .onErrorResume(err -> { + log.warn("启动场景[{}]失败", e.getName(), err); + return Mono.empty(); + })) + .subscribe(); + } + }