目前公司使用的是jdk8,用jdk8肯定的用他的新特性,比如说到的集合迭代器配合Lambda表达式迭代集合。效率基本跟之前的for没有什么区别。
那么在最近使用jdk8集合的默认迭代器的时候,多数据源的场景出现了一个非常有意思的问题,我先贴代码,然后说明我提出的bug供大家探讨。
定时任务核心代码如下:
简单的解释一下业务逻辑,
各位看代码有什么问题没有?我估计也一下子看不出什么问题吧
简单的说一下bug
冻结表
账户表
这两条数据是我需要解冻的,也即是操作3需要执行的,当定时任务执行完之后解冻表中的状态改了,但是余额却没有增加
如下:
定时任务执行结果机后台日志没有报错
当换成for语句迭代,则没有类似的事情发生了
这个就是在使用jdk8的时候出现的bug,一个很简单的多数据源协作处理引发的问题,大家可以测试一下。
如果有兴趣的人可以去简单的模拟一下此场景。公司的小程序目前已经上线了,整个后端架构都是我来设计的,大家来体验一下。
您可以作为boss去发放offer(工作),也可以作为工作者去竞标其他boss发放的offer。
小程序:
公众号:
谢谢大家的支持