遇到一个异步状态问题,想请教后端大佬,这种问题专业术语叫什么?学习的方向是什么?
目前在开发一个与现金相关的业务。因为每一个步骤都要跟第三方系统交互,所以每个步骤都比较重。其中有一个流程步骤多,所以用户体验很差。
这个流程的每个步骤并非完全是需要串行的进行。所以思考之后,准备把一些耗时的、可并行的步骤放到了异步队列里执行,客户端无需等待这些异步任务完成即可返回。比如,一开始串行时的流程是这样的:
```
A -> B1 -> B2 -> B3 -> C
```
想要改成这样:
```
A -> B1 (B2, B3 进入异步) -> C
```
B1, B2, B3 都可能触发多次。在进行步骤 C 的时候,如果前置状态没完成则需要等待。我能想到的是用 Redis 锁来实现这个功能。自己搜索学习一番后,感觉需要这么做:
1. 三个分布式锁分别锁住 B1, B2, B3 。这样每个步骤自己触发多次时,可以保证顺序执行。
2. 步骤 C 要等待这三个锁都释放后,再查询验证状态,从而确定步骤 C 是否可以继续进行。
不知道这样做对不对? |
|