wangwei 5 yıl önce
ebeveyn
işleme
e591a2d1f7

+ 0 - 1
.gitignore

@@ -16,7 +16,6 @@ buildNumber.properties
 target/
 .idea/
 *.iml
-*test/
 # Package Files #
 *.jar
 

+ 29 - 0
src/test/java/cn/com/qmth/examcloud/test/pipeline/FileReaderExecuter.java

@@ -0,0 +1,29 @@
+package cn.com.qmth.examcloud.test.pipeline;
+
+import java.io.File;
+import java.util.List;
+import java.util.Objects;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.RandomUtils;
+
+import cn.com.qmth.examcloud.commons.helpers.pipeline.NodeExecuter;
+import cn.com.qmth.examcloud.commons.helpers.pipeline.Storer;
+import cn.com.qmth.examcloud.commons.helpers.pipeline.TaskContext;
+
+public class FileReaderExecuter implements NodeExecuter<String, String, String, String> {
+
+	@Override
+	public void execute(String key, String value, Storer<String, String> storer,
+			TaskContext context) throws Exception {
+
+		String path = (String) context.get("path");
+
+		List<String> readLines = FileUtils.readLines(new File(path), "UTF-8");
+
+		readLines.forEach(e -> {
+			storer.putElement(Objects.toString(RandomUtils.nextLong()), e);
+		});
+	}
+
+}

+ 15 - 0
src/test/java/cn/com/qmth/examcloud/test/pipeline/PrintExecuter.java

@@ -0,0 +1,15 @@
+package cn.com.qmth.examcloud.test.pipeline;
+
+import cn.com.qmth.examcloud.commons.helpers.pipeline.NodeExecuter;
+import cn.com.qmth.examcloud.commons.helpers.pipeline.Storer;
+import cn.com.qmth.examcloud.commons.helpers.pipeline.TaskContext;
+
+public class PrintExecuter implements NodeExecuter<String, String, String, String> {
+
+	@Override
+	public void execute(String key, String value, Storer<String, String> storer,
+			TaskContext context) throws Exception {
+		System.out.println("Print: " + key + " -> " + value);
+	}
+
+}

+ 33 - 0
src/test/java/cn/com/qmth/examcloud/test/pipeline/Test.java

@@ -0,0 +1,33 @@
+package cn.com.qmth.examcloud.test.pipeline;
+
+import cn.com.qmth.examcloud.commons.helpers.pipeline.Node;
+import cn.com.qmth.examcloud.commons.helpers.pipeline.SimpleNode;
+import cn.com.qmth.examcloud.commons.helpers.pipeline.TaskContext;
+
+public class Test {
+
+	public static void main(String[] args) {
+		TaskContext context = new TaskContext();
+		context.put("path", "D:/Temp/test.txt");
+
+		FileReaderExecuter fileReaderExecuter = new FileReaderExecuter();
+		PrintExecuter printExecuter = new PrintExecuter();
+
+		SimpleNode<String, String, String, String> node1 = new SimpleNode<String, String, String, String>(
+				"reader", fileReaderExecuter, context);
+
+		Node<String, String, String, String> node2 = new SimpleNode<String, String, String, String>(
+				"print", printExecuter, context);
+
+		node1.setLowerNode(node2);
+
+		node1.setFirst(true);
+		node1.setSleep(10);
+
+		node2.setSleep(5);
+
+		node1.start();
+		node2.start();
+	}
+
+}

+ 42 - 0
src/test/resources/log4j2.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Configuration status="WARN" monitorInterval="30">
+
+	<Properties>
+		<Property name="commonLevel" value="${sys:log.commonLevel}" />
+	</Properties>
+
+	<Appenders>
+		<!-- 控制台 日志 -->
+		<Console name="Console" target="SYSTEM_OUT">
+			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} | %m | %l%n" />
+		</Console>
+		<!-- debug 日志 -->
+		<RollingFile name="DEBUG_APPENDER" fileName="./logs/debug/debug.log" filePattern="./logs/debug/debug-%d{yyyy.MM.dd.HH}-%i.log">
+			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}| %level | %X{TRACE_ID} | %m | %l%n" />
+			<Policies>
+				<TimeBasedTriggeringPolicy interval="1" />
+				<SizeBasedTriggeringPolicy size="100 MB" />
+			</Policies>
+			<DefaultRolloverStrategy max="10000">
+				<Delete basePath="./logs/debug" maxDepth="1">
+					<IfFileName glob="debug-*.log">
+						<IfAccumulatedFileSize exceeds="2 GB" />
+					</IfFileName>
+				</Delete>
+			</DefaultRolloverStrategy>
+		</RollingFile>
+	</Appenders>
+
+	<Loggers>
+		<Logger name="cn.tianji.heaven" level="DEBUG" additivity="false">
+			<AppenderRef ref="DEBUG_APPENDER" />
+			<AppenderRef ref="Console" />
+		</Logger>
+
+		<Root level="INFO">
+			<AppenderRef ref="Console" />
+			<AppenderRef ref="DEBUG_APPENDER" />
+		</Root>
+	</Loggers>
+
+</Configuration>