diff --git a/liteflow-async-tool/pom.xml b/liteflow-async-tool/pom.xml
index b64aadba6..d09dff99e 100644
--- a/liteflow-async-tool/pom.xml
+++ b/liteflow-async-tool/pom.xml
@@ -11,9 +11,19 @@
liteflow-async-tool
-
- 8
- 8
-
+
+
+ cn.hutool
+ hutool-core
+ ${hutool-core.version}
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ ${springboot.version}
+ test
+
+
\ No newline at end of file
diff --git a/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/SeqWorkTest.java b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/SeqWorkTest.java
new file mode 100644
index 000000000..6dd483498
--- /dev/null
+++ b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/SeqWorkTest.java
@@ -0,0 +1,91 @@
+package com.yomahub.liteflow.asynctool.test.seqwork;
+
+import com.yomahub.liteflow.asynctool.executor.Async;
+import com.yomahub.liteflow.asynctool.test.seqwork.work.*;
+import com.yomahub.liteflow.asynctool.wrapper.WorkerWrapper;
+import org.junit.Test;
+
+public class SeqWorkTest {
+
+ @Test
+ public void test1(){
+ SeqWork1 seqWork1 = new SeqWork1();
+ SeqWork2 seqWork2 = new SeqWork2();
+ SeqWork3 seqWork3 = new SeqWork3();
+
+ Callback1 callback1 = new Callback1();
+ Callback2 callback2 = new Callback2();
+ Callback3 callback3 = new Callback3();
+
+ WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
+ .worker(seqWork1)
+ .callback(callback1)
+ .param("param1")
+ .build();
+
+ WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
+ .worker(seqWork2)
+ .callback(callback2)
+ .param("param2")
+ .depend(workerWrapper1)
+ .build();
+
+ WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
+ .worker(seqWork3)
+ .callback(callback3)
+ .param("param3")
+ .depend(workerWrapper2)
+ .build();
+
+ try{
+ boolean flag = Async.beginWork(3500,workerWrapper1);
+ System.out.println(workerWrapper3.getWorkResult().getResultState());
+ System.out.println(flag);
+ }catch (Exception e){
+ e.printStackTrace();
+ }finally {
+ Async.shutDown();
+ }
+ }
+
+ @Test
+ public void test2(){
+ SeqWork1 seqWork1 = new SeqWork1();
+ SeqWork2 seqWork2 = new SeqWork2();
+ SeqWork3 seqWork3 = new SeqWork3();
+
+ Callback1 callback1 = new Callback1();
+ Callback2 callback2 = new Callback2();
+ Callback3 callback3 = new Callback3();
+
+ WorkerWrapper workerWrapper1 = new WorkerWrapper.Builder()
+ .worker(seqWork1)
+ .callback(callback1)
+ .param("param1")
+ .build();
+
+ WorkerWrapper workerWrapper2 = new WorkerWrapper.Builder()
+ .worker(seqWork2)
+ .callback(callback2)
+ .param("param2")
+ .depend(workerWrapper1)
+ .build();
+
+ WorkerWrapper workerWrapper3 = new WorkerWrapper.Builder()
+ .worker(seqWork3)
+ .callback(callback3)
+ .param("param3")
+ .depend(workerWrapper2)
+ .build();
+
+ try{
+ boolean flag = Async.beginWork(2500,workerWrapper1);
+ System.out.println(workerWrapper3.getWorkResult().getResultState());
+ System.out.println(flag);
+ }catch (Exception e){
+ e.printStackTrace();
+ }finally {
+ Async.shutDown();
+ }
+ }
+}
diff --git a/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/Callback1.java b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/Callback1.java
new file mode 100644
index 000000000..986715b3d
--- /dev/null
+++ b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/Callback1.java
@@ -0,0 +1,12 @@
+package com.yomahub.liteflow.asynctool.test.seqwork.work;
+
+import cn.hutool.core.util.StrUtil;
+import com.yomahub.liteflow.asynctool.callback.ICallback;
+import com.yomahub.liteflow.asynctool.worker.WorkResult;
+
+public class Callback1 implements ICallback {
+ @Override
+ public void result(boolean success, String param, WorkResult workResult) {
+ System.out.println(StrUtil.format("开始执行{},结果为{},参数为{},workResult为{}", this.getClass().getSimpleName(), success, param, workResult.getResult()));
+ }
+}
diff --git a/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/Callback2.java b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/Callback2.java
new file mode 100644
index 000000000..196c3e98d
--- /dev/null
+++ b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/Callback2.java
@@ -0,0 +1,12 @@
+package com.yomahub.liteflow.asynctool.test.seqwork.work;
+
+import cn.hutool.core.util.StrUtil;
+import com.yomahub.liteflow.asynctool.callback.ICallback;
+import com.yomahub.liteflow.asynctool.worker.WorkResult;
+
+public class Callback2 implements ICallback {
+ @Override
+ public void result(boolean success, String param, WorkResult workResult) {
+ System.out.println(StrUtil.format("开始执行{},结果为{},参数为{},workResult为{}", this.getClass().getSimpleName(), success, param, workResult.getResult()));
+ }
+}
diff --git a/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/Callback3.java b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/Callback3.java
new file mode 100644
index 000000000..4b95e8f62
--- /dev/null
+++ b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/Callback3.java
@@ -0,0 +1,12 @@
+package com.yomahub.liteflow.asynctool.test.seqwork.work;
+
+import cn.hutool.core.util.StrUtil;
+import com.yomahub.liteflow.asynctool.callback.ICallback;
+import com.yomahub.liteflow.asynctool.worker.WorkResult;
+
+public class Callback3 implements ICallback {
+ @Override
+ public void result(boolean success, String param, WorkResult workResult) {
+ System.out.println(StrUtil.format("开始执行{},结果为{},参数为{},workResult为{}", this.getClass().getSimpleName(), success, param, workResult.getResult()));
+ }
+}
diff --git a/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/SeqWork1.java b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/SeqWork1.java
new file mode 100644
index 000000000..d7a39707f
--- /dev/null
+++ b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/SeqWork1.java
@@ -0,0 +1,18 @@
+package com.yomahub.liteflow.asynctool.test.seqwork.work;
+
+import cn.hutool.core.util.StrUtil;
+import com.yomahub.liteflow.asynctool.callback.IWorker;
+import com.yomahub.liteflow.asynctool.wrapper.WorkerWrapper;
+
+import java.util.Map;
+
+public class SeqWork1 implements IWorker {
+ @Override
+ public String action(String object, Map allWrappers) {
+ System.out.println(StrUtil.format("开始执行{},参数为{},当前线程ID为{}", this.getClass().getSimpleName(), object, Thread.currentThread().getId()));
+ try{
+ Thread.sleep(1000);
+ }catch (Exception ignored){}
+ return "result1";
+ }
+}
diff --git a/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/SeqWork2.java b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/SeqWork2.java
new file mode 100644
index 000000000..fa5c53a6c
--- /dev/null
+++ b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/SeqWork2.java
@@ -0,0 +1,18 @@
+package com.yomahub.liteflow.asynctool.test.seqwork.work;
+
+import cn.hutool.core.util.StrUtil;
+import com.yomahub.liteflow.asynctool.callback.IWorker;
+import com.yomahub.liteflow.asynctool.wrapper.WorkerWrapper;
+
+import java.util.Map;
+
+public class SeqWork2 implements IWorker {
+ @Override
+ public String action(String object, Map allWrappers) {
+ System.out.println(StrUtil.format("开始执行{},参数为{},当前线程ID为{}", this.getClass().getSimpleName(), object, Thread.currentThread().getId()));
+ try{
+ Thread.sleep(1000);
+ }catch (Exception ignored){}
+ return "result2";
+ }
+}
diff --git a/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/SeqWork3.java b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/SeqWork3.java
new file mode 100644
index 000000000..36c1d259f
--- /dev/null
+++ b/liteflow-async-tool/src/test/java/com/yomahub/liteflow/asynctool/test/seqwork/work/SeqWork3.java
@@ -0,0 +1,18 @@
+package com.yomahub.liteflow.asynctool.test.seqwork.work;
+
+import cn.hutool.core.util.StrUtil;
+import com.yomahub.liteflow.asynctool.callback.IWorker;
+import com.yomahub.liteflow.asynctool.wrapper.WorkerWrapper;
+
+import java.util.Map;
+
+public class SeqWork3 implements IWorker {
+ @Override
+ public String action(String object, Map allWrappers) {
+ System.out.println(StrUtil.format("开始执行{},参数为{},当前线程ID为{}", this.getClass().getSimpleName(), object, Thread.currentThread().getId()));
+ try{
+ Thread.sleep(1000);
+ }catch (Exception ignored){}
+ return "result3";
+ }
+}