diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/SQLXmlELParser.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/SQLXmlELParser.java index 6f218de4a..98fa7f640 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/SQLXmlELParser.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/SQLXmlELParser.java @@ -68,7 +68,7 @@ public class SQLXmlELParser extends ClassXmlFlowELParser { try{ JDBCHelper jdbcHelper = JDBCHelper.getInstance(); String content = jdbcHelper.getContent(); - if(sqlParserVO.getIfPolling()) { + if(sqlParserVO.getPollingEnabled()) { FlowInitHook.addHook(() -> { jdbcHelper.listenSQL(); return true; diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/util/JDBCHelper.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/util/JDBCHelper.java index 5be349ed7..8eb6dc4b8 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/util/JDBCHelper.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/util/JDBCHelper.java @@ -76,7 +76,7 @@ public class JDBCHelper { } INSTANCE.setSqlParserVO(sqlParserVO); //创建定时任务线程池 - if (sqlParserVO.getIfPolling() && ObjectUtil.isNull(getPollExecutor())) { + if (sqlParserVO.getPollingEnabled() && ObjectUtil.isNull(getPollExecutor())) { ThreadFactory namedThreadFactory = new NamedThreadFactory("SQL-Polling-", false); ScheduledThreadPoolExecutor threadPoolExecutor = new ScheduledThreadPoolExecutor( CORE_POOL_SIZE, @@ -137,7 +137,7 @@ public class JDBCHelper { result.add(StrUtil.format(CHAIN_XML_PATTERN, XmlUtil.escape(chainName), elData)); //如果需要轮询 计算该chainData的SHA值 - if(sqlParserVO.getIfPolling()){ + if(sqlParserVO.getPollingEnabled()){ String chainSHA = DigestUtil.sha1Hex(elData); chainSHAMap.put(chainName, chainSHA); } @@ -167,13 +167,13 @@ public class JDBCHelper { public void listenSQL() { //添加轮询chain的定时任务 ChainPollingTask chainTask = new ChainPollingTask(sqlParserVO, chainSHAMap); - pollExecutor.scheduleAtFixedRate(chainTask, sqlParserVO.getPollingStartTime().longValue(), - sqlParserVO.getPollingInterval().longValue(), TimeUnit.SECONDS); + pollExecutor.scheduleAtFixedRate(chainTask, sqlParserVO.getPollingStartSeconds().longValue(), + sqlParserVO.getPollingIntervalSeconds().longValue(), TimeUnit.SECONDS); if (hasScriptData()) { //添加轮询script的定时任务 ScriptPollingTask scriptTask = new ScriptPollingTask(sqlParserVO, scriptSHAMap); - pollExecutor.scheduleAtFixedRate(scriptTask, sqlParserVO.getPollingStartTime().longValue(), - sqlParserVO.getPollingInterval().longValue(), TimeUnit.SECONDS); + pollExecutor.scheduleAtFixedRate(scriptTask, sqlParserVO.getPollingStartSeconds().longValue(), + sqlParserVO.getPollingIntervalSeconds().longValue(), TimeUnit.SECONDS); } } @@ -232,7 +232,7 @@ public class JDBCHelper { result.add(StrUtil.format(NODE_ITEM_XML_PATTERN, XmlUtil.escape(id), XmlUtil.escape(name), type, data)); //如果需要轮询 计算该scriptData的SHA值 - if(sqlParserVO.getIfPolling()){ + if(sqlParserVO.getPollingEnabled()){ String scriptKey = StrUtil.join(":", id, type, name); String scriptSHA = DigestUtil.sha1Hex(data); scriptSHAMap.put(scriptKey, scriptSHA); @@ -306,7 +306,7 @@ public class JDBCHelper { type, language, data)); //如果需要轮询 计算该scriptData的SHA值 - if(sqlParserVO.getIfPolling()){ + if(sqlParserVO.getPollingEnabled()){ String scriptKey = StrUtil.join(":", id, type, name, language); String scriptSHA = DigestUtil.sha1Hex(data); scriptSHAMap.put(scriptKey, scriptSHA); diff --git a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java index e1479025e..2e7bf0cd0 100644 --- a/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java +++ b/liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/vo/SQLParserVO.java @@ -91,13 +91,13 @@ public class SQLParserVO { private String scriptLanguageField; /*轮询机制是否开启 默认不开启*/ - private Boolean ifPolling = false; + private Boolean pollingEnabled = false; /*轮询时间间隔(s) 默认120s*/ - private Integer pollingInterval = 120; + private Integer pollingIntervalSeconds = 120; /*规则配置后首次轮询的起始时间 默认为60s*/ - private Integer pollingStartTime = 60; + private Integer pollingStartSeconds = 60; public String getUrl() { return url; @@ -234,27 +234,27 @@ public class SQLParserVO { return StrUtil.isBlank(url) && StrUtil.isBlank(username) && StrUtil.isBlank(password) && StrUtil.isBlank(driverClassName); } - public Boolean getIfPolling() { - return ifPolling; + public Boolean getPollingEnabled() { + return pollingEnabled; } - public void setIfPolling(Boolean ifPolling) { - this.ifPolling = ifPolling; + public void setPollingEnabled(Boolean pollingEnabled) { + this.pollingEnabled = pollingEnabled; } - public Integer getPollingInterval() { - return pollingInterval; + public Integer getPollingIntervalSeconds() { + return pollingIntervalSeconds; } - public void setPollingInterval(Integer pollingInterval) { - this.pollingInterval = pollingInterval; + public void setPollingIntervalSeconds(Integer pollingIntervalSeconds) { + this.pollingIntervalSeconds = pollingIntervalSeconds; } - public Integer getPollingStartTime() { - return pollingStartTime; + public Integer getPollingStartSeconds() { + return pollingStartSeconds; } - public void setPollingStartTime(Integer pollingStartTime) { - this.pollingStartTime = pollingStartTime; + public void setPollingStartSeconds(Integer pollingStartSeconds) { + this.pollingStartSeconds = pollingStartSeconds; } } diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/.gitignore b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/.gitignore deleted file mode 100644 index 549e00a2a..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/.gitignore +++ /dev/null @@ -1,33 +0,0 @@ -HELP.md -target/ -!.mvn/wrapper/maven-wrapper.jar -!**/src/main/**/target/ -!**/src/test/**/target/ - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ -build/ -!**/src/main/**/build/ -!**/src/test/**/build/ - -### VS Code ### -.vscode/ diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/pom.xml b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/pom.xml deleted file mode 100644 index 334c00ab4..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - - - liteflow-testcase-el - com.yomahub - ${revision} - ../pom.xml - - 4.0.0 - - liteflow-testcase-el-sql-springboot-polling - - - 2.1.214 - 2.6.8 - - - - - com.yomahub - liteflow-spring-boot-starter - ${revision} - - - - com.yomahub - liteflow-rule-sql - ${revision} - test - - - - org.springframework.boot - spring-boot-starter-test - - - - org.springframework.boot - spring-boot-starter-data-jpa - ${jpa.version} - test - - - - com.h2database - h2 - ${h2.version} - test - - - - com.yomahub - liteflow-script-groovy - ${revision} - test - - - - com.yomahub - liteflow-script-graaljs - ${revision} - test - - - - diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/BaseTest.java b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/BaseTest.java deleted file mode 100644 index a06c46f17..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/BaseTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.yomahub.liteflow.test; - -import com.yomahub.liteflow.core.FlowInitHook; -import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.property.LiteflowConfigGetter; -import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; -import com.yomahub.liteflow.spring.ComponentScanner; -import com.yomahub.liteflow.thread.ExecutorHelper; -import org.junit.jupiter.api.AfterAll; - -/** - * @author hxinyu - * @since 2.11.1 - */ -public class BaseTest { - - @AfterAll - public static void cleanScanCache() { - ComponentScanner.cleanCache(); - FlowBus.cleanCache(); - ExecutorHelper.loadInstance().clearExecutorServiceMap(); - SpiFactoryCleaner.clean(); - LiteflowConfigGetter.clean(); - FlowInitHook.cleanHook(); - } - -} \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/cmp/ACmp.java deleted file mode 100644 index 11ffb1a7c..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/cmp/ACmp.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - *

Title: liteflow

- *

Description: 轻量级的组件式流程框架

- * - * @author Bryan.Zhang - * @email weenyc31@163.com - * @Date 2020/4/1 - */ -package com.yomahub.liteflow.test.sql.cmp; - -import com.yomahub.liteflow.core.NodeComponent; -import org.springframework.stereotype.Component; - -@Component("a") -public class ACmp extends NodeComponent { - - @Override - public void process() { - System.out.println("ACmp executed!"); - } - -} \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/cmp/BCmp.java deleted file mode 100644 index 9601ee2cf..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/cmp/BCmp.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - *

Title: liteflow

- *

Description: 轻量级的组件式流程框架

- * - * @author Bryan.Zhang - * @email weenyc31@163.com - * @Date 2020/4/1 - */ -package com.yomahub.liteflow.test.sql.cmp; - -import com.yomahub.liteflow.core.NodeComponent; -import org.springframework.stereotype.Component; - -@Component("b") -public class BCmp extends NodeComponent { - - @Override - public void process() { - System.out.println("BCmp executed!"); - } - -} diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/cmp/CCmp.java deleted file mode 100644 index 2274a153e..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/cmp/CCmp.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - *

Title: liteflow

- *

Description: 轻量级的组件式流程框架

- * - * @author Bryan.Zhang - * @email weenyc31@163.com - * @Date 2020/4/1 - */ -package com.yomahub.liteflow.test.sql.cmp; - -import com.yomahub.liteflow.core.NodeComponent; -import org.springframework.stereotype.Component; - -@Component("c") -public class CCmp extends NodeComponent { - - @Override - public void process() { - System.out.println("CCmp executed!"); - } - -} \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/resources/sql/data.sql b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/resources/sql/data.sql deleted file mode 100644 index 5900dfa0a..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/resources/sql/data.sql +++ /dev/null @@ -1,14 +0,0 @@ -DELETE FROM EL_TABLE; - -INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','chain1','THEN(a, b, c);'); -INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','chain2','IF(x1, THEN(a, b));'); -INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','chain3','IF(x0, THEN(a, b));'); -INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','','IF(x0, THEN(a, b));'); -INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','chain4','IF(x2, IF(x0, THEN(a, b)));'); - -DELETE FROM SCRIPT_NODE_TABLE; - -INSERT INTO SCRIPT_NODE_TABLE (APPLICATION_NAME,SCRIPT_NODE_ID,SCRIPT_NODE_NAME,SCRIPT_NODE_TYPE,SCRIPT_NODE_DATA,SCRIPT_LANGUAGE) values ('demo','x0','if 脚本','if_script','return true','groovy'); -INSERT INTO SCRIPT_NODE_TABLE (APPLICATION_NAME,SCRIPT_NODE_ID,SCRIPT_NODE_NAME,SCRIPT_NODE_TYPE,SCRIPT_NODE_DATA,SCRIPT_LANGUAGE) values ('demo','x1','if 脚本','if_script','return true','groovy'); - -INSERT INTO SCRIPT_NODE_TABLE (APPLICATION_NAME,SCRIPT_NODE_ID,SCRIPT_NODE_NAME,SCRIPT_NODE_TYPE,SCRIPT_NODE_DATA,SCRIPT_LANGUAGE) values ('demo','x2','python脚本','if_script','return true','js'); diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/resources/sql/schema.sql b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/resources/sql/schema.sql deleted file mode 100644 index fa60f098a..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/resources/sql/schema.sql +++ /dev/null @@ -1,20 +0,0 @@ -create table IF NOT EXISTS `EL_TABLE` -( - `id` bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, - `application_name` varchar(32) NOT NULL, - `chain_name` varchar(32) NOT NULL, - `el_data` varchar(1024) NOT NULL, - PRIMARY KEY (`id`) -); - -create table IF NOT EXISTS `script_node_table` -( - `id` bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, - `application_name` varchar(32) NOT NULL, - `script_node_id` varchar(32) NOT NULL, - `script_node_name` varchar(32) NOT NULL, - `script_node_type` varchar(32) NOT NULL, - `script_node_data` varchar(1024) NOT NULL, - `script_language` varchar(1024) NOT NULL, - PRIMARY KEY (`id`) -); \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/SQLWithXmlELSpringbootPollingTest.java b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/java/com/yomahub/liteflow/test/sql/SQLWithXmlELSpringbootPollingTest.java similarity index 96% rename from liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/SQLWithXmlELSpringbootPollingTest.java rename to liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/java/com/yomahub/liteflow/test/sql/SQLWithXmlELSpringbootPollingTest.java index 833af55a3..e358fe2e3 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/java/com/yomahub/liteflow/test/sql/SQLWithXmlELSpringbootPollingTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/java/com/yomahub/liteflow/test/sql/SQLWithXmlELSpringbootPollingTest.java @@ -1,8 +1,6 @@ package com.yomahub.liteflow.test.sql; import com.yomahub.liteflow.core.FlowExecutor; -import com.yomahub.liteflow.core.FlowInitHook; -import com.yomahub.liteflow.flow.FlowBus; import com.yomahub.liteflow.flow.LiteflowResponse; import com.yomahub.liteflow.log.LFLog; import com.yomahub.liteflow.log.LFLoggerManager; @@ -12,10 +10,7 @@ import com.yomahub.liteflow.parser.sql.vo.SQLParserVO; import com.yomahub.liteflow.property.LiteflowConfig; import com.yomahub.liteflow.property.LiteflowConfigGetter; import com.yomahub.liteflow.slot.DefaultContext; -import com.yomahub.liteflow.spi.holder.SpiFactoryCleaner; -import com.yomahub.liteflow.spring.ComponentScanner; import com.yomahub.liteflow.test.BaseTest; -import com.yomahub.liteflow.thread.ExecutorHelper; import com.yomahub.liteflow.util.JsonUtil; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Assertions; @@ -29,7 +24,10 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import javax.annotation.Resource; import java.lang.reflect.Field; -import java.sql.*; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; import java.util.concurrent.ScheduledThreadPoolExecutor; /** diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/resources/application-poll-xml.properties b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/application-poll-xml.properties similarity index 91% rename from liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/resources/application-poll-xml.properties rename to liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/application-poll-xml.properties index 4b662547f..1962f270b 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot-polling/src/test/resources/application-poll-xml.properties +++ b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/application-poll-xml.properties @@ -15,9 +15,9 @@ liteflow.rule-source-ext-data={\ "scriptDataField":"script_node_data",\ "scriptLanguageField":"script_language",\ "scriptTypeField":"script_node_type",\ - "ifPolling":true,\ - "pollingInterval":2,\ - "pollingStartTime":2\ + "pollingEnabled":true,\ + "pollingIntervalSeconds":2,\ + "pollingStartSeconds":2\ } spring.datasource.driver-class-name=org.h2.Driver diff --git a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/sql/data.sql b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/sql/data.sql index dda527ee6..5900dfa0a 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/sql/data.sql +++ b/liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/resources/sql/data.sql @@ -1,7 +1,7 @@ DELETE FROM EL_TABLE; INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','chain1','THEN(a, b, c);'); -INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','chain2','THEN(a, b, c);'); +INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','chain2','IF(x1, THEN(a, b));'); INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','chain3','IF(x0, THEN(a, b));'); INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','','IF(x0, THEN(a, b));'); INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','chain4','IF(x2, IF(x0, THEN(a, b)));'); @@ -9,6 +9,6 @@ INSERT INTO EL_TABLE (APPLICATION_NAME,CHAIN_NAME,EL_DATA) values ('demo','chain DELETE FROM SCRIPT_NODE_TABLE; INSERT INTO SCRIPT_NODE_TABLE (APPLICATION_NAME,SCRIPT_NODE_ID,SCRIPT_NODE_NAME,SCRIPT_NODE_TYPE,SCRIPT_NODE_DATA,SCRIPT_LANGUAGE) values ('demo','x0','if 脚本','if_script','return true','groovy'); -INSERT INTO SCRIPT_NODE_TABLE (APPLICATION_NAME,SCRIPT_NODE_ID,SCRIPT_NODE_NAME,SCRIPT_NODE_TYPE,SCRIPT_NODE_DATA,SCRIPT_LANGUAGE) values ('demo','x1','if 脚本','if_script','return false','groovy'); +INSERT INTO SCRIPT_NODE_TABLE (APPLICATION_NAME,SCRIPT_NODE_ID,SCRIPT_NODE_NAME,SCRIPT_NODE_TYPE,SCRIPT_NODE_DATA,SCRIPT_LANGUAGE) values ('demo','x1','if 脚本','if_script','return true','groovy'); INSERT INTO SCRIPT_NODE_TABLE (APPLICATION_NAME,SCRIPT_NODE_ID,SCRIPT_NODE_NAME,SCRIPT_NODE_TYPE,SCRIPT_NODE_DATA,SCRIPT_LANGUAGE) values ('demo','x2','python脚本','if_script','return true','js');