Pārlūkot izejas kodu

fix 规则引擎集群状态变化

18339543638 3 gadi atpakaļ
vecāks
revīzija
3806d8abcc

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

@@ -231,7 +231,7 @@ class RuleAbstractClusterUniqueTask extends AbstractClusterUniqueTask implements
                     return Mono.<Void>fromRunnable(this.executor::reload)
                         .subscribeOn(Schedulers.boundedElastic());
                 case SHUTDOWN:
-                    this.taskState=State.shutdown;
+                    this.executor.shutdown();
                     //解锁
                     this.getHeldLockThread().execute(()->this.getLock().unlock());
                     break;

+ 1 - 0
jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/executor/TimerTaskExecutorProvider.java

@@ -68,6 +68,7 @@ public class TimerTaskExecutorProvider implements TaskExecutorProvider {
             }
             return this.disposable =
                 Mono.delay(nextTime, scheduler)
+                    .filter(ignore -> state == Task.State.running)
                     .flatMap(t -> context.getOutput().write(Mono.just(context.newRuleData(t))))
                     .then(context.fireEvent(RuleConstants.Event.complete, context.newRuleData(System.currentTimeMillis())).thenReturn(1))
                     .onErrorResume(err -> context.onError(err, null).then(Mono.empty()))