社区
Web 开发
帖子详情
流水号 同步 问题
heroy
2003-08-29 02:56:04
插入记录的时候,流水号取表中最大值。但是如果有几个插入同时发生的话,可能发生错误。
如果流水号从xml文件中取得,在写入得话,可能发生同时写入得异常。
不知道大家是怎么控制的。
...全文
65
1
打赏
收藏
流水号 同步 问题
插入记录的时候,流水号取表中最大值。但是如果有几个插入同时发生的话,可能发生错误。 如果流水号从xml文件中取得,在写入得话,可能发生同时写入得异常。 不知道大家是怎么控制的。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yingmuhuadao
2003-08-29
打赏
举报
回复
流水号,一般都是从库里取的!这样就不会用问题了
流水号
(自动编号)生成相关
问题
(并发、事务)及解决方案
流水号
生成的事务和并发
问题
因为界面可能多个人创建了表单,生成的
流水号
号需要顺序加: //从数据库中取出上一次生成的
流水号
编号 number = select value from
流水号
表 where id =? //更新数据库 编号+1 update number = number + 1; return number; 这里就会有并发
问题
: 假如有2个人同时去数据库取值 , 取到的值可能是一样的, 所以生成的 编号也可能一样 ,这就有
问题
了 并发
问题
产生的原因和解决方案 为什么会有并发
问题
最主
关于 在springboot项目中生成
流水号
之类的业务时 添加 synchronized
同步
代码块无效
一个简单的获取
流水号
代码: /** * 获取
流水号
* @param billstype 业务类型 * @return */ @Transactional(rollbackFor = Throwable.class) public synchronized int getOrUpdateNumber(String billstype) { int num = 1; //获取历史
流水号
Stream stream = streamDao.ge
单据
流水号
,并发避免重复
问题
JAVA
java,面对单据的
流水号
,避免重复和并发
问题
先讲一下思路 把一批单号生成,放到内存(你要连续,就放缓存),然后通过加锁的方式,去控制并发和重复的
问题
,当只剩下几个单号的时候,再重新生成一批 OK,上代码 NO.1 首先得有个配置,定义每次生成多少个单据号出来(放缓存里,不够了再生成) // 配置项属性: // 列名: val(当前值) , interval (增长区间), n(倍数) // 其中 val = val + interval * n // // 开始时 val = 1.
java 唯一
流水号
_JAVA
流水号
生成规格,采用
同步
单例生成,保证永远唯一
流水号
格式为yyyyMMddXXXX,规定每天只能到9999,代码如下:01import java.text.DecimalFormat;02import java.text.SimpleDateFormat;03import java.util.Date;0405public class PrimaryGenerater {0607private static final String SERI...
Redis生成分布式唯一
流水号
实践
在工作中,想必都接触过这样一个场景:生成具有一定规则的编码。 比如,合同编号。要求格式为
<4位年><2位月><2位类型>
流水号>。 前面都好说,只有这个
流水号
,很容易就出现重复、跨越等
问题
。 如何解决呢?其实办法也有好多种,能想到的最多就是加锁。无论是synchronized关键字、还是Lock锁、Zookeeper锁、Redis锁等,都是通过阻塞其它请求,即
同步
阻塞模式,一次只处理一个
流水号
生成请求,以达到唯一性目的。 那么有没有
同步
非阻塞模式呢?答案是有的,且使用起来也比较简单
Web 开发
81,092
社区成员
341,718
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章