From a1c32b946d8401c6a08e53dd1d8550c2914f0979 Mon Sep 17 00:00:00 2001 From: zhouhao Date: Thu, 27 Feb 2020 17:03:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=A7=84=E5=88=99=E5=BC=95?= =?UTF-8?q?=E6=93=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RuleEngineConfiguration.java | 2 +- .../RuleEngineLogIndexInitialize.java | 57 +++++++++++++++++++ .../entity/RuleEngineExecuteEventInfo.java | 1 + ...nfo.java => RuleEngineExecuteLogInfo.java} | 4 +- .../RuleEngineLoggerIndexProvider.java | 4 +- .../engine/event/handler/RuleLogHandler.java | 6 +- .../rule/engine/nodes/TimerWorkerNode.java | 4 +- .../engine/service/RuleInstanceService.java | 6 +- .../engine/web/RuleInstanceController.java | 6 +- .../src/main/resources/application.yml | 4 +- 10 files changed, 77 insertions(+), 17 deletions(-) create mode 100644 jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/configuration/RuleEngineLogIndexInitialize.java rename jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/entity/{ExecuteLogInfo.java => RuleEngineExecuteLogInfo.java} (86%) diff --git a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/configuration/RuleEngineConfiguration.java b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/configuration/RuleEngineConfiguration.java index ec9ace8c..4ed5ae10 100644 --- a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/configuration/RuleEngineConfiguration.java +++ b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/configuration/RuleEngineConfiguration.java @@ -20,6 +20,7 @@ import org.jetlinks.rule.engine.model.antv.AntVG6RuleModelParserStrategy; import org.jetlinks.rule.engine.standalone.StandaloneRuleEngine; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; +import org.springframework.boot.CommandLineRunner; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -120,5 +121,4 @@ public class RuleEngineConfiguration { } - } diff --git a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/configuration/RuleEngineLogIndexInitialize.java b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/configuration/RuleEngineLogIndexInitialize.java new file mode 100644 index 00000000..fe1d9b32 --- /dev/null +++ b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/configuration/RuleEngineLogIndexInitialize.java @@ -0,0 +1,57 @@ +package org.jetlinks.community.rule.engine.configuration; + +import lombok.extern.slf4j.Slf4j; +import org.jetlinks.community.elastic.search.enums.FieldDateFormat; +import org.jetlinks.community.elastic.search.enums.FieldType; +import org.jetlinks.community.elastic.search.index.CreateIndex; +import org.jetlinks.community.elastic.search.service.IndexOperationService; +import org.jetlinks.community.rule.engine.event.handler.RuleEngineLoggerIndexProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; + +/** + * @author bsetfeng + * @since 1.0 + **/ +@Component +@Order(1) +@Slf4j +public class RuleEngineLogIndexInitialize implements CommandLineRunner { + + private final IndexOperationService indexOperationService; + + @Autowired + public RuleEngineLogIndexInitialize(IndexOperationService indexOperationService) { + this.indexOperationService = indexOperationService; + } + + + @Override + public void run(String... args) throws Exception { + indexOperationService.init(CreateIndex.createInstance() + .addIndex(RuleEngineLoggerIndexProvider.RULE_LOG.getStandardIndex()) + .createMapping() + .addFieldName("createTime").addFieldType(FieldType.DATE).addFieldDateFormat(FieldDateFormat.epoch_millis, FieldDateFormat.simple_date, FieldDateFormat.strict_date_time).commit() + .addFieldName("level").addFieldType(FieldType.KEYWORD).commit() + .addFieldName("message").addFieldType(FieldType.KEYWORD).commit() + .addFieldName("nodeId").addFieldType(FieldType.KEYWORD).commit() + .addFieldName("instanceId").addFieldType(FieldType.KEYWORD).commit() + .end() + .createIndexRequest()) + .and( + indexOperationService.init(CreateIndex.createInstance() + .addIndex(RuleEngineLoggerIndexProvider.RULE_EVENT_LOG.getStandardIndex()) + .createMapping() + .addFieldName("createTime").addFieldType(FieldType.DATE).addFieldDateFormat(FieldDateFormat.epoch_millis, FieldDateFormat.simple_date, FieldDateFormat.strict_date_time).commit() + .addFieldName("event").addFieldType(FieldType.KEYWORD).commit() + .addFieldName("nodeId").addFieldType(FieldType.KEYWORD).commit() + .addFieldName("instanceId").addFieldType(FieldType.KEYWORD).commit() + .end() + .createIndexRequest()) + ) + .doOnError(err -> log.error(err.getMessage(), err)) + .subscribe(); + } +} diff --git a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/entity/RuleEngineExecuteEventInfo.java b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/entity/RuleEngineExecuteEventInfo.java index 02a04066..36560e99 100644 --- a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/entity/RuleEngineExecuteEventInfo.java +++ b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/entity/RuleEngineExecuteEventInfo.java @@ -10,6 +10,7 @@ import lombok.Setter; @Getter @Setter public class RuleEngineExecuteEventInfo { + private String id; private String event; diff --git a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/entity/ExecuteLogInfo.java b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/entity/RuleEngineExecuteLogInfo.java similarity index 86% rename from jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/entity/ExecuteLogInfo.java rename to jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/entity/RuleEngineExecuteLogInfo.java index 66bcc072..5f576ec3 100644 --- a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/entity/ExecuteLogInfo.java +++ b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/entity/RuleEngineExecuteLogInfo.java @@ -9,7 +9,9 @@ import lombok.Setter; **/ @Getter @Setter -public class ExecuteLogInfo { +public class RuleEngineExecuteLogInfo { + + private String id; private String instanceId; diff --git a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/event/handler/RuleEngineLoggerIndexProvider.java b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/event/handler/RuleEngineLoggerIndexProvider.java index 9cd67162..0844c61c 100644 --- a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/event/handler/RuleEngineLoggerIndexProvider.java +++ b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/event/handler/RuleEngineLoggerIndexProvider.java @@ -12,8 +12,8 @@ import org.jetlinks.community.elastic.search.index.ElasticIndex; @AllArgsConstructor public enum RuleEngineLoggerIndexProvider implements ElasticIndex { - RULE_LOG("rule-log", "_doc"), - RULE_EVENT_LOG("rule-event-log", "_doc"); + RULE_LOG("rule-engine-execute-log", "_doc"), + RULE_EVENT_LOG("rule-engine-execute-event", "_doc"); private String index; diff --git a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/event/handler/RuleLogHandler.java b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/event/handler/RuleLogHandler.java index d451a23e..5e526648 100644 --- a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/event/handler/RuleLogHandler.java +++ b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/event/handler/RuleLogHandler.java @@ -4,7 +4,7 @@ import lombok.extern.slf4j.Slf4j; import org.hswebframework.web.bean.FastBeanCopier; import org.jetlinks.community.elastic.search.service.ElasticSearchService; import org.jetlinks.community.rule.engine.entity.RuleEngineExecuteEventInfo; -import org.jetlinks.community.rule.engine.entity.ExecuteLogInfo; +import org.jetlinks.community.rule.engine.entity.RuleEngineExecuteLogInfo; import org.jetlinks.rule.engine.api.events.NodeExecuteEvent; import org.jetlinks.rule.engine.api.events.RuleEvent; import org.jetlinks.rule.engine.cluster.logger.LogInfo; @@ -25,7 +25,7 @@ public class RuleLogHandler { @EventListener public void handleRuleLog(LogInfo event) { - ExecuteLogInfo logInfo = FastBeanCopier.copy(event, new ExecuteLogInfo()); + RuleEngineExecuteLogInfo logInfo = FastBeanCopier.copy(event, new RuleEngineExecuteLogInfo()); elasticSearchService.commit(RuleEngineLoggerIndexProvider.RULE_LOG, Mono.just(logInfo)) .subscribe(); } @@ -36,7 +36,7 @@ public class RuleLogHandler { if (!RuleEvent.NODE_EXECUTE_BEFORE.equals(event.getEvent()) && !RuleEvent.NODE_EXECUTE_RESULT.equals(event.getEvent())) { RuleEngineExecuteEventInfo eventInfo = FastBeanCopier.copy(event, new RuleEngineExecuteEventInfo()); - elasticSearchService.commit(RuleEngineLoggerIndexProvider.RULE_LOG, Mono.just(eventInfo)) + elasticSearchService.commit(RuleEngineLoggerIndexProvider.RULE_EVENT_LOG, Mono.just(eventInfo)) .subscribe(); } } diff --git a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/nodes/TimerWorkerNode.java b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/nodes/TimerWorkerNode.java index 5f8d56e9..7cc44e1b 100644 --- a/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/nodes/TimerWorkerNode.java +++ b/jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/nodes/TimerWorkerNode.java @@ -40,7 +40,7 @@ public class TimerWorkerNode extends CommonExecutableRuleNodeFactoryStrategy new TimerJob(config, context)); - job.doStart(); + job.start(); } @Override @@ -74,7 +74,7 @@ public class TimerWorkerNode extends CommonExecutableRuleNodeFactoryStrategy execute(this::start)); + .subscribe(t -> execute(this::doStart)); } void execute(Runnable runnable) { diff --git a/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/service/RuleInstanceService.java b/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/service/RuleInstanceService.java index d74fe394..5f0c07fb 100644 --- a/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/service/RuleInstanceService.java +++ b/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/service/RuleInstanceService.java @@ -4,7 +4,7 @@ import lombok.extern.slf4j.Slf4j; import org.hswebframework.ezorm.core.param.QueryParam; import org.hswebframework.web.api.crud.entity.PagerResult; import org.hswebframework.web.crud.service.GenericReactiveCrudService; -import org.jetlinks.community.rule.engine.entity.ExecuteLogInfo; +import org.jetlinks.community.rule.engine.entity.RuleEngineExecuteLogInfo; import org.jetlinks.community.rule.engine.entity.RuleEngineExecuteEventInfo; import org.jetlinks.community.rule.engine.event.handler.RuleEngineLoggerIndexProvider; import org.jetlinks.community.elastic.search.service.ElasticSearchService; @@ -36,8 +36,8 @@ public class RuleInstanceService extends GenericReactiveCrudService> queryExecuteLog(QueryParam queryParam) { - return elasticSearchService.queryPager(RuleEngineLoggerIndexProvider.RULE_LOG, queryParam, ExecuteLogInfo.class); + public Mono> queryExecuteLog(QueryParam queryParam) { + return elasticSearchService.queryPager(RuleEngineLoggerIndexProvider.RULE_LOG, queryParam, RuleEngineExecuteLogInfo.class); } public Mono stop(String id) { diff --git a/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/web/RuleInstanceController.java b/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/web/RuleInstanceController.java index 77f6b06d..e7a80a7f 100644 --- a/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/web/RuleInstanceController.java +++ b/jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/web/RuleInstanceController.java @@ -9,7 +9,7 @@ import org.hswebframework.web.crud.service.ReactiveCrudService; import org.hswebframework.web.crud.web.reactive.ReactiveServiceCrudController; import org.hswebframework.web.exception.NotFoundException; import org.hswebframework.web.id.IDGenerator; -import org.jetlinks.community.rule.engine.entity.ExecuteLogInfo; +import org.jetlinks.community.rule.engine.entity.RuleEngineExecuteLogInfo; import org.jetlinks.community.rule.engine.entity.RuleEngineExecuteEventInfo; import org.jetlinks.community.rule.engine.entity.RuleInstanceEntity; import org.jetlinks.community.rule.engine.service.RuleInstanceService; @@ -48,8 +48,8 @@ public class RuleInstanceController implements ReactiveServiceCrudController> queryLog(@PathVariable String id, - QueryParamEntity paramEntity) { + public Mono> queryLog(@PathVariable String id, + QueryParamEntity paramEntity) { return paramEntity.toQuery() .is("instanceId", id) .execute(instanceService::queryExecuteLog); diff --git a/jetlinks-standalone/src/main/resources/application.yml b/jetlinks-standalone/src/main/resources/application.yml index a8bd23ec..5aaadba2 100644 --- a/jetlinks-standalone/src/main/resources/application.yml +++ b/jetlinks-standalone/src/main/resources/application.yml @@ -91,8 +91,8 @@ logging: # org.springframework.data.r2dbc.connectionfactory: debug io.micrometer: warn org.hswebframework.expands: error - system: warn - org.jetlinks.rule.engine: debug + system: debug + org.jetlinks.rule.engine: warn org.jetlinks.gateway: debug org.springframework: warn vertx: