Parcourir la source

add 规则引擎集群

18339543638 il y a 4 ans
Parent
commit
0445e8941f

+ 1 - 1
jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/cluster/ClusterUniqueTask.java

@@ -259,7 +259,7 @@ class ClusterUniqueTask implements Task ,Serializable{
                                 //心跳信息
                                 ClusterUniqueTask task = (ClusterUniqueTask) message;
                                 if(task.getCurrentSeverId().equals(this.workerId)){
-                                    //本地节点关闭
+                                    //本地节点监听心跳关闭,开始发送心跳
                                     this.handleDisposable.dispose();
                                     return Mono.empty();
                                 }

+ 10 - 0
jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/web/RuleSceneController.java

@@ -7,6 +7,7 @@ import org.hswebframework.web.authorization.annotation.SaveAction;
 import org.hswebframework.web.crud.service.ReactiveCrudService;
 import org.hswebframework.web.crud.web.reactive.ReactiveServiceCrudController;
 import org.jetlinks.community.rule.engine.entity.RuleSceneEntity;
+import org.jetlinks.community.rule.engine.enums.RuleSceneState;
 import org.jetlinks.community.rule.engine.service.RuleSceneService;
 import org.springframework.web.bind.annotation.*;
 import reactor.core.publisher.Mono;
@@ -27,6 +28,15 @@ public class RuleSceneController implements ReactiveServiceCrudController<RuleSc
     }
 
 
+    @PatchMapping("/update")
+    @SaveAction
+    @Operation(summary = "启动场景互联配置更新")
+    public Mono<Void> update(@RequestBody RuleSceneEntity entity) {
+        return sceneService.save(entity)
+            .filter(result->result.getUpdated()!=0)
+            .flatMap(ignore->RuleSceneState.started.eq(entity.getState())?Mono.empty():sceneService.start(entity.getId()));
+    }
+
     @PostMapping("/{id}/_start")
     @SaveAction
     @Operation(summary = "启动场景互联配置")