NutzCN Logo
问答 Nutz.MVC action 方法加上 synchronized 能实现Web容器内同步吗?
发布于 2240天前 作者 qianlaohu 1987 次浏览 复制 上一个帖子 下一个帖子
标签:
	@At("/submit")
	@Ok("json")
	public synchronized Object doSubmit(HttpServletRequest req) {

如上代码,在 MVC action 方法上增加 synchronized 修饰,能实现 Web 容器内同步吗?

7 回复

能,但没人这样干

那应该怎样干?

你的动机是什么? 如果要求事务就加上事务模板, 而不是加 synchronized

业务流程,提交申请需要生成一个流水号,和其他数据一起保存到多张表里,现在请求量大的时候,生成的流水号可能重复,导致主表里没有保存数据,子表里保存了数据。用了事务模板,也给 action 加了 synchronized ,还是有重复的情况出现。
请问,想要同步处理请求,每次生成唯一的流水号,怎么写法?

做个专门的流水号Service, 具体的实现可以用加锁或者redis的incr来做

好的,谢谢!

提前生成10W个放在redis中, 用的时候取出来就是了, 每天跑一个定时任务补充一下redis

添加回复
请先登陆
回到顶部