jfinal关于并发,解决重复卖火车票、超库存秒杀的业务场景【已解决】

卖火车票,有100张,有1000个用户同时来抢,很容易发生并发,多卖的情况。


思路方法一:

编写service层,把相关的业务逻辑在这里,并且把这个类实现static单例模式,加上synchronized,controller访问的时候,等待前一个controller执行完毕才进行。


思路二:

Db.update("update tableA set count = count -1 where id=?", id)
//或者
update table  set  库存数量-购买数 where  库存数量>=购买数

返回更新的记录数,大于0代表更新成功。

感觉大家都是用第二种方式吧?不用等,直接利用mysql本身的事务进行了

请教大家是用那个方式?晚点我把demo实现一下。

---最后使用了最后一个方法来实现。

评论区

kun

2018-05-07 12:48

上redis就没那么多麻烦事了,一句DECR count就解决问题

fmpoffice

2018-05-10 22:29

@kun 没上呢,不会的东西太多了,迟点恶补一下这方面的知识。

热门反馈

扫码入社