From 4387155d6e452c2c270d153410e2d4c748f512cd Mon Sep 17 00:00:00 2001 From: bryan31 Date: Thu, 11 Nov 2021 13:05:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=84=9A=E6=9C=AC=E5=B9=B3?= =?UTF-8?q?=E6=BB=91=E5=88=B7=E6=96=B0=E7=9A=84=E6=B5=8B=E8=AF=95=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LiteflowJsonScriptFileGroovyTest.java | 22 +++++++++++++++++++ .../LiteflowXmlScriptFileGroovyTest.java | 22 +++++++++++++++++++ .../LiteflowJsonScriptFileQLExpressTest.java | 22 +++++++++++++++++++ .../LiteflowXmlScriptFileQLExpressTest.java | 22 +++++++++++++++++++ 4 files changed, 88 insertions(+) diff --git a/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowJsonScriptFileGroovyTest.java b/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowJsonScriptFileGroovyTest.java index b955af764..1940bda62 100644 --- a/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowJsonScriptFileGroovyTest.java +++ b/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowJsonScriptFileGroovyTest.java @@ -67,4 +67,26 @@ public class LiteflowJsonScriptFileGroovyTest extends BaseTest { Assert.assertTrue(responseNew.isSuccess()); Assert.assertEquals("d==>s2[条件脚本_改]==>b==>s3[普通脚本_新增]", responseNew.getSlot().printStep()); } + + //测试脚本&规则平滑重载刷新 + @Test + public void testScript4() throws Exception{ + new Thread(() -> { + try{ + Thread.sleep(1000L); + //更改规则,重新加载,更改的规则内容从flow_update.xml里读取,这里只是为了模拟下获取新的内容。不一定是从文件中读取 + String newContent = ResourceUtil.readUtf8Str("classpath: /json-script-file/flow_update.json"); + //进行刷新 + FlowBus.refreshFlowMetaData(FlowParserTypeEnum.TYPE_JSON, newContent); + }catch (Exception e){ + e.printStackTrace(); + } + }).start(); + + for (int i = 0; i < 500; i++) { + LiteflowResponse responseNew = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(responseNew.isSuccess()); + Thread.sleep(10L); + } + } } diff --git a/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowXmlScriptFileGroovyTest.java b/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowXmlScriptFileGroovyTest.java index 548dccd11..f68de81b9 100644 --- a/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowXmlScriptFileGroovyTest.java +++ b/liteflow-testcase-script-groovy/src/test/java/com/yomahub/liteflow/test/script/groovy/LiteflowXmlScriptFileGroovyTest.java @@ -67,4 +67,26 @@ public class LiteflowXmlScriptFileGroovyTest extends BaseTest { Assert.assertTrue(responseNew.isSuccess()); Assert.assertEquals("d==>s2[条件脚本_改]==>b==>s3[普通脚本_新增]", responseNew.getSlot().printStep()); } + + //测试脚本&规则平滑重载刷新 + @Test + public void testScript4() throws Exception{ + new Thread(() -> { + try{ + Thread.sleep(1000L); + //更改规则,重新加载,更改的规则内容从flow_update.xml里读取,这里只是为了模拟下获取新的内容。不一定是从文件中读取 + String newContent = ResourceUtil.readUtf8Str("classpath: /xml-script-file/flow_update.xml"); + //进行刷新 + FlowBus.refreshFlowMetaData(FlowParserTypeEnum.TYPE_XML, newContent); + }catch (Exception e){ + e.printStackTrace(); + } + }).start(); + + for (int i = 0; i < 500; i++) { + LiteflowResponse responseNew = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(responseNew.isSuccess()); + Thread.sleep(10L); + } + } } diff --git a/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowJsonScriptFileQLExpressTest.java b/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowJsonScriptFileQLExpressTest.java index 90c6eb1a5..d793e6bfb 100644 --- a/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowJsonScriptFileQLExpressTest.java +++ b/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowJsonScriptFileQLExpressTest.java @@ -66,4 +66,26 @@ public class LiteflowJsonScriptFileQLExpressTest extends BaseTest { Assert.assertTrue(responseNew.isSuccess()); Assert.assertEquals("d==>s2[条件脚本_改]==>a==>s3[普通脚本_新增]", responseNew.getSlot().printStep()); } + + //测试脚本&规则平滑重载刷新 + @Test + public void testScript4() throws Exception{ + new Thread(() -> { + try{ + Thread.sleep(1000L); + //更改规则,重新加载,更改的规则内容从flow_update.xml里读取,这里只是为了模拟下获取新的内容。不一定是从文件中读取 + String newContent = ResourceUtil.readUtf8Str("classpath: /json-script-file/flow_update.json"); + //进行刷新 + FlowBus.refreshFlowMetaData(FlowParserTypeEnum.TYPE_JSON, newContent); + }catch (Exception e){ + e.printStackTrace(); + } + }).start(); + + for (int i = 0; i < 500; i++) { + LiteflowResponse responseNew = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(responseNew.isSuccess()); + Thread.sleep(10L); + } + } } diff --git a/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowXmlScriptFileQLExpressTest.java b/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowXmlScriptFileQLExpressTest.java index 7c6191e22..7328fd927 100644 --- a/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowXmlScriptFileQLExpressTest.java +++ b/liteflow-testcase-script-qlexpress/src/test/java/com/yomahub/liteflow/test/script/qlexpress/LiteflowXmlScriptFileQLExpressTest.java @@ -66,4 +66,26 @@ public class LiteflowXmlScriptFileQLExpressTest extends BaseTest { Assert.assertTrue(responseNew.isSuccess()); Assert.assertEquals("d==>s2[条件脚本_改]==>a==>s3[普通脚本_新增]", responseNew.getSlot().printStep()); } + + //测试脚本&规则平滑重载刷新 + @Test + public void testScript4() throws Exception{ + new Thread(() -> { + try{ + Thread.sleep(1000L); + //更改规则,重新加载,更改的规则内容从flow_update.xml里读取,这里只是为了模拟下获取新的内容。不一定是从文件中读取 + String newContent = ResourceUtil.readUtf8Str("classpath: /xml-script-file/flow_update.xml"); + //进行刷新 + FlowBus.refreshFlowMetaData(FlowParserTypeEnum.TYPE_XML, newContent); + }catch (Exception e){ + e.printStackTrace(); + } + }).start(); + + for (int i = 0; i < 500; i++) { + LiteflowResponse responseNew = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(responseNew.isSuccess()); + Thread.sleep(10L); + } + } }