同时使用回调接口和查询接口引发的一个问题
接口 一个 查询 同时 回调 引发 问题 使用
2023-09-14 08:57:30 时间
最近在开发过程中遇到了一个问题,之前没怎么注意,后来细想是有问题的。
我们的系统对接了银行的开户接口。银行同时提供了开户结果回调和开户结果查询接口。
在这个业务场景中,假如银行回调开户成功会触发我们系统发起签约动作,如果一段时间内银行没回调的话,我们会主动去查询,然后再触发相应的动作。
这里存在的一个问题就是,假如我查询的时候回调通知还没过来,等我们发起通知时正好回调过来了,这样可能触发两次签约动作。
想了下处理方案:
- 银行回调我们系统时,我们更新开户状态的逻辑应该是:开户状态还是处理中的才能更新,如果状态不是处理中,说明查询接口已经更新了处理状态。
- 系统主动查询的更新逻辑:和回调一样,同时是开户状态是处理中的才能更新。更新成功后才进行后续的签约工作。
简单来说就是使用乐观锁的思想进行更新。
相关文章
- Apicloud_(接口验证)用户注册头部信息X-APICloud-AppKey生成
- 当我们开发一个接口时需要注意些什么
- 一个注解优雅的实现 接口数据脱敏
- 100多个免费API接口分享 调用完全不限次数,以后总用得着
- [PHP] 接口请求校验的原理
- Atitit 事务的一些概念 目录 1. 事务的另一个特性:数据隔离级别1 2. Spring五个事务隔离级别和七个事务传播行为1 3. 在TransactionDefinition接口中定义了
- 如何做 python 接口测试?
- js 为Array实现一个Reader,通过接口getReader获取,Reader 有一个接口 read(n)
- pytest接口自动化测试框架 | 使用装饰器修饰需要运行的用例
- 从0.1开始接口自动化的一点实践
- 5年测试工程师浅谈—— 你完全了解接口测试么?
- 【进阶自动化测试第一步】接口测试基础
- 在生成一个窗体的时候,点击窗体的右上角关闭按钮激发窗体事件的方法:窗体Frame为事件源,WindowsListener接口调用Windowsclosing()。
- 利用redis-lua+python实现接口限流
- Dart基础第12篇:一个类实现多个接口 以及Dart中的Mixins
- 使用Python实现一个简单的接口服务