急问!!两个不同请求完成后触发另一个流程

业务场景:
1.客户端上报完成后(修改数据库状态为已完成)
2.第三方回调一个值记录在同一条记录上
3.在1和2完成后触发一个流程,1和2没有先后顺序,也可能会并发
4.1和2可能会重复请求

问题:怎么设计一个方案能感知1和2都完成了

最佳答案

触发另一个流程,如果时效要求不高且可以异步的话,可以起定时任务定期检查执行;

如果不能异步,可以1或者2完成时,用kv数据库(比如redis,对某个key自增操作是并发安全的)记个数,检查计数超过1说明两个步骤都完成了,就可以执行后面的流程了

2年前 评论
讨论数量: 6
KayuHo

锁机制啊

2年前 评论

加个 redis 锁,或文件写入内容

然后根据内容,或是否存在判断任务是否完成,名称弄一定的规律,另一个请求可以找到就行了

2年前 评论

触发另一个流程,如果时效要求不高且可以异步的话,可以起定时任务定期检查执行;

如果不能异步,可以1或者2完成时,用kv数据库(比如redis,对某个key自增操作是并发安全的)记个数,检查计数超过1说明两个步骤都完成了,就可以执行后面的流程了

2年前 评论
Junwind
  1. 先解决并发问题;
  2. 1完成或者2完成更新数据库时,此时就可以检测到两个是否都更新了,则此时就是触发下一个流程的时机; 或者定时任务检查;
2年前 评论

CountDownLatch

2年前 评论
dql_1991 (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!