mirror of
https://gitee.com/jd-platform-opensource/asyncTool.git
synced 2024-12-19 03:30:30 +08:00
update README.md.
This commit is contained in:
parent
17879cbccc
commit
b3ad20190a
@ -10,18 +10,18 @@
|
|||||||
#### 并行常见的场景
|
#### 并行常见的场景
|
||||||
1 客户端请求服务端接口,该接口需要调用其他N个微服务的接口
|
1 客户端请求服务端接口,该接口需要调用其他N个微服务的接口
|
||||||
|
|
||||||
譬如 请求我的订单,那么就需要去调用用户的rpc、商品详情的rpc、库存rpc、优惠券等等好多个服务。同时,这些服务还有相互依赖关系,譬如必须先拿到用户的某个字段后,再去某rpc服务请求数据。 最终全部获取完毕后,或超时了,就汇总结果,返回给客户端。
|
`譬如 请求我的订单,那么就需要去调用用户的rpc、商品详情的rpc、库存rpc、优惠券等等好多个服务。同时,这些服务还有相互依赖关系,譬如必须先拿到用户的某个字段后,再去某rpc服务请求数据。 最终全部获取完毕后,或超时了,就汇总结果,返回给客户端。`
|
||||||
|
|
||||||
2 并行执行N个任务,后续根据这1-N个任务的执行结果来决定是否继续执行下一个任务
|
2 并行执行N个任务,后续根据这1-N个任务的执行结果来决定是否继续执行下一个任务
|
||||||
|
|
||||||
如用户可以通过邮箱、手机号、用户名登录,登录接口只有一个,那么当用户发起登录请求后,我们需要并行根据邮箱、手机号、用户名来同时查数据库,只要有一个成功了,都算成功,就可以继续执行下一步。而不是先试邮箱能否成功、再试手机号……
|
`如用户可以通过邮箱、手机号、用户名登录,登录接口只有一个,那么当用户发起登录请求后,我们需要并行根据邮箱、手机号、用户名来同时查数据库,只要有一个成功了,都算成功,就可以继续执行下一步。而不是先试邮箱能否成功、再试手机号……`
|
||||||
|
|
||||||
|
|
||||||
再如某个接口,有5个前置任务需要处理。其中有3个是必须要执行完毕才能执行后续的,另外2个是无所谓的,只要这3个执行完就可以进行下一步,到时另外2个如果成功了就有值,如果还没执行完,就是默认值。
|
`再如某个接口,有5个前置任务需要处理。其中有3个是必须要执行完毕才能执行后续的,另外2个是无所谓的,只要这3个执行完就可以进行下一步,到时另外2个如果成功了就有值,如果还没执行完,就是默认值。`
|
||||||
|
|
||||||
3 需要进行线程隔离的多批次任务
|
3 需要进行线程隔离的多批次任务
|
||||||
|
|
||||||
如多组任务, 各组任务之间彼此不相关,每组都需要一个独立的线程池,每组都是独立的一套执行单元的组合。有点类似于hystrix的线程池隔离策略。
|
`如多组任务, 各组任务之间彼此不相关,每组都需要一个独立的线程池,每组都是独立的一套执行单元的组合。有点类似于hystrix的线程池隔离策略。`
|
||||||
|
|
||||||
4 单机工作流任务编排
|
4 单机工作流任务编排
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user