@At("/submit") @Ok("json") public synchronized Object doSubmit(HttpServletRequest req) {
如上代码,在 MVC action 方法上增加 synchronized 修饰,能实现 Web 容器内同步吗?
能,但没人这样干
那应该怎样干?
你的动机是什么? 如果要求事务就加上事务模板, 而不是加 synchronized
业务流程,提交申请需要生成一个流水号,和其他数据一起保存到多张表里,现在请求量大的时候,生成的流水号可能重复,导致主表里没有保存数据,子表里保存了数据。用了事务模板,也给 action 加了 synchronized ,还是有重复的情况出现。请问,想要同步处理请求,每次生成唯一的流水号,怎么写法?
做个专门的流水号Service, 具体的实现可以用加锁或者redis的incr来做
好的,谢谢!
提前生成10W个放在redis中, 用的时候取出来就是了, 每天跑一个定时任务补充一下redis