首页 新闻 会员 周边 捐助

多线程处理业务逻辑是时,对数据库的读取如何保证同一性?

0
悬赏园豆:5 [已解决问题] 解决于 2016-05-25 14:02

现在的业务是,多线程从消息队列里读取数据,然后从数据库中判断数据是否存在,再做其它处理。

现在的问题是,多个线程读取后,一个线程可能还在处理过程中,另一个线程又进来了,怎么处理这样的情况?

请指教

小徐的博客的主页 小徐的博客 | 初学一级 | 园豆:15
提问于:2016-01-10 21:46
< >
分享
最佳答案
0

没太看明白你的场景,你前面数据库判断是否存在那么不就可以做限制了么?比如数据字段加时间戳,最后执行完后更新结果时带上时间戳条件,如果没更新到代表已经被其他线程执行过了。

收获园豆:5
Daniel Cai | 专家六级 |园豆:10424 | 2016-01-11 10:04
其他回答(4)
0

同步

阿克西斯教成员污米饭 | 园豆:129 (初学一级) | 2016-01-10 22:43

如何同步?

支持(0) 反对(0) 小徐的博客 | 园豆:15 (初学一级) | 2016-01-10 23:29
0

加把锁 机制或者是定义一个全局静态变量 标志是否还有线程执行。

唯我独萌 | 园豆:537 (小虾三级) | 2016-01-11 10:33
0

这种一般是从业务上控制不要同时多个现成处理同一笔业务。

幻天芒 | 园豆:37207 (高人七级) | 2016-01-11 16:56
0

乐观锁 和事务 更新的时候带着这条记录一起更新

如果这条记录已经更新了 那么会报错 让其他的更新一起 更新不上去

如果这条记录没有更新 那么更新成功

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2016-01-22 13:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册