开发者社区> 问答> 正文

on duplicate key update

现在遇到一个线程安全问题 就是我前端或者接口传来一批数据(List) 插入的时候需要根据这个数据的 factoryId 进行判断,如果这个id存在说明是更新操作,如果不存在则进行插入.但是问题是,如果这个地方,如果有两个线程同时往里写入,A 执行判断是否存在 factoryId,不存在,向里面插入数据,线程B此时也判断是否存在factoryId,如果不存在,也向里面插入数据,那么自然就会连续插入两次.实际上后进入的数据应该执行update操作而不是insert操作.这个地方如果不使用分布式锁,如何处理比较好?如果对这个地方使用synchronize的话,如果能将锁粒度细化,尽可能减少阻塞其他线程.使用JCP?
来源:云原生后端社区
https://www.yuque.com/server_mind/answer

展开
收起
Atom 2020-04-25 15:46:48 836 0
1 条回答
写回答
取消 提交回答
  • 不用 generator,手写个sql好了。insert xx on duplicate key update ...
    来源:云原生后端社区
    https://www.yuque.com/server_mind/answer

    2020-04-25 15:47:05
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载