记一次项目开发经验——任务轮询、乐观锁

任务轮询:
最近一个项目需要调BI平台每日明细数据进行处理,在掉用接口时遇到的问题:
1:什么时候掉用?
2:怎么确认调用接口拿到的数据是有用的(第一版还是重跑的?完整的还是不完整的?)?
3:每次调用要获取前一天的数据,怎么保证历史数据的完整?
最终方案:任务轮询
根据BI每天执行任务的时间来安排调用时间;
数据完整问题:
1:调用BI任务清单接口,获取任务清单并存储;
2:轮询任务清单表:
a:当前任务BI状态是否为未完成?若未完成,调用BI任务清单更新?
b:当前任务BI状态是完成的,本系统运行过了吗?若已运行,不管。判断下一任务。
c:当前任务BI状态是完成的,本系统未运行,根据任务信息调用BI数据接口获取数据,获取完毕后更新任务状态。判断下一任务。

重跑还是新增数据?
BI那边只有一版数据,每次重跑是做的update,本系统还需要获取历史数据,最初计划用任务清单的状态来判断,考虑的BI历史数据有些无任务清单,最终采用判断本系统数据库的方法来判断数据重跑。

乐观锁:
更新数据状态时只做了基础的查询并对修改前状态的判断,测试时发现当多人同时点击,通过操作记录可以看到,状态在同一时间被修改了,之后引入乐观锁解决这一问题。
在表中新增字段 version,默认version=0为最初版本,后面每次做修改都要带着version去做条件修改,数据每次修改,version做自增。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值