From 9cf132c6faf302945f4584ab7dbaa6e0af8215a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=AC=E4=B8=9C-=E5=B9=B3=E5=8F=B0=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E4=B8=AD=E5=BF=83?= <5714087+jd-platform-opensource_admin@user.noreply.gitee.com> Date: Thu, 19 Mar 2020 16:31:46 +0800 Subject: [PATCH 1/5] update README.md. --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index cdf464b..488241d 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,10 @@ # 并行框架说明 -有问题、或者有特定的场景需求可以给作者发邮件说明,感谢您的意见。wuweifeng10@jd.com +有问题、或者有特定的场景需求可以给作者发邮件说明,感谢您的意见。wuweifeng10@jd.com, liwangyang@jd.com 该框架目前正在 **京东App后台** 接受苛刻、高并发、海量用户等复杂场景业务的检验测试,随时会根据实际情况发布更新和bugFix。 有对区块链感兴趣的,可以参考项目作者另一个[GVP项目](https://gitee.com/tianyalei/md_blockchain),java区块链底层入门。 -如果只是需要用这个框架,请往下看即可。如果需要深入了解这个框架是如何一步一步实现的,从接到需求,到每一步的思考,每个类为什么这么设计,为什么有这些方法,也就是如何从0到1开发出这个框架,作者在[csdn开了专栏](https://blog.csdn.net/tianyaleixiaowu/category_9637010.html)专门讲中间件如何从0开发,包括并不限于这个小框架。京东内部同事可在cf上搜索erp也能看到。 ## 并行常见的场景 1 客户端请求服务端接口,该接口需要调用其他N个微服务的接口 From 4bb594e032b871115e52c1431b342055d32b801a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=AC=E4=B8=9C-=E5=B9=B3=E5=8F=B0=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E4=B8=AD=E5=BF=83?= <5714087+jd-platform-opensource_admin@user.noreply.gitee.com> Date: Thu, 19 Mar 2020 16:34:21 +0800 Subject: [PATCH 2/5] update QuickStart.md. --- QuickStart.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/QuickStart.md b/QuickStart.md index 659d3de..489a773 100644 --- a/QuickStart.md +++ b/QuickStart.md @@ -1,3 +1,5 @@ +如果只是需要用这个框架,请往下看即可。如果需要深入了解这个框架是如何一步一步实现的,从接到需求,到每一步的思考,每个类为什么这么设计,为什么有这些方法,也就是如何从0到1开发出这个框架,作者在[csdn开了专栏](https://blog.csdn.net/tianyaleixiaowu/category_9637010.html)专门讲中间件如何从0开发,包括并不限于这个小框架。京东内部同事可在cf上搜索erp也能看到。 + #### 基本组件 worker: 一个最小的任务执行单元。通常是一个网络调用,或一段耗时操作。 From 99635f2d71b2c71a1856c1db719339e873ba19c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=AC=E4=B8=9C-=E5=B9=B3=E5=8F=B0=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E4=B8=AD=E5=BF=83?= <5714087+jd-platform-opensource_admin@user.noreply.gitee.com> Date: Mon, 23 Mar 2020 17:13:54 +0800 Subject: [PATCH 3/5] update README.md. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 488241d..a1ff2e6 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ 一组任务,虽然内部的各个执行单元的时间不可控,但是我可以控制全组的执行时间不超过某个值。通过设置timeOut,来控制全组的执行阈值。 ## 并发场景可能存在的需求之——高性能、低线程数 -该框架全程无锁,没有一个加锁的地方。 +该框架全程无锁,不依靠线程锁来保证顺序。 创建线程量少。![输入图片说明](https://images.gitee.com/uploads/images/2019/1226/093227_9633e2a8_303698.png "屏幕截图.png") 如这样的,A会运行在B、C执行更慢的那个单元的线程上,而不会额外创建线程。 From 90aaaf2556947ca9e4fb88452de618cbd4af2046 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=AC=E4=B8=9C-=E5=B9=B3=E5=8F=B0=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E4=B8=AD=E5=BF=83?= <5714087+jd-platform-opensource_admin@user.noreply.gitee.com> Date: Tue, 24 Mar 2020 10:58:42 +0800 Subject: [PATCH 4/5] update README.md. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a1ff2e6..b7b2681 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ 注意:这个依赖关系是有必须和非必须之分的,还有一个重要的东西是执行单元不能重复执行。譬如图4,如果B执行完毕,然后执行了A,此时C终于执行完了,然后也到了A,此时就会发现A已经在执行,或者已经完毕(失败),那么就不应该再重复执行A。 -还有一种场景,如下图,A和D并行开始,D先执行完了,开始执行Result任务,此时B和C都还没开始,然后Result执行完了,虽然B和C都还没执行,但是已经没必要执行了。B和C这些任务是可以被跳过的,跳过的原则是他们的NextWrapper已经有结果了或者已经在执行了。我提供了checkNextWrapperResult方法来控制,当后面的任务已经执行了,自己还要不要执行的逻辑控制。当然,这个控制仅限于nextWrapper只有一个时才有成立。 +还有一种场景,如下图,A和D并行开始,D先执行完了,开始执行Result任务,此时B和C都还没开始,然后Result执行完了,虽然B和C都还没执行,但是已经没必要执行了。B和C这些任务是可以被跳过的,跳过的原则是他们的NextWrapper已经有结果了或者已经在执行了。我提供了checkNextWrapperResult方法来控制,当后面的任务已经执行了,自己还要不要执行的逻辑控制。当然,这个控制仅限于nextWrapper只有一个时才成立。 ![输入图片说明](https://images.gitee.com/uploads/images/2020/0217/183223_de7e3fa7_303698.png "屏幕截图.png") From d24a27b6a4a53a490eddf2ae41cc3281a8ad6b38 Mon Sep 17 00:00:00 2001 From: tianyaleixiaowu <272551766@qq.com> Date: Thu, 26 Mar 2020 09:45:01 +0800 Subject: [PATCH 5/5] update README.md. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b7b2681..a767965 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +注意,该框架我已转移到公司账号:https://gitee.com/jd-platform-opensource/asyncTool 下。更新时会优先更新公司账号,本账号会不定期同步。 + # 并行框架说明 有问题、或者有特定的场景需求可以给作者发邮件说明,感谢您的意见。wuweifeng10@jd.com, liwangyang@jd.com