首页 新闻 赞助 找找看

Spring的web项目,如何控制在某个时间段内来自不同请求线程的同类Insert操作先在Service里“排队”,然后统一的调用Dao层批量向数据库提交?

0
悬赏园豆:5 [待解决问题]

Spring的web项目,如何控制在某个时间段内(比如2秒内)来自不同请求线程的同类Insert操作先在Service里“排队”,然后在这段时间结束时统一地调用Dao层批量向数据库提交作业?以便减少数据库连接次数

surriento的主页 surriento | 初学一级 | 园豆:105
提问于:2018-08-23 14:40
< >
分享
所有回答(3)
0

消息队列.

吴瑞祥 | 园豆:29449 (高人七级) | 2018-08-23 15:38
0

Thread.sleep

山抹微云君^^ | 园豆:274 (菜鸟二级) | 2018-08-24 17:29
0

调用Dao层批量向数据库提交作用,我不知道你是怎么理解的,如果你的意思是将多条数据同时插入到同一个表中,那么可以先甄别SQL语句中使用的表和字段,然后使用一个Map类型来存储相对应的SQL语句,这样可以做到同时插入,但是只有在大量相同插入数据的时候是可行的,因为你甄别一条数据也是要花费时间的,所以如果只是少量的数据,不如使用线程池的方式,设置好最少连接数,让线程池去管理这些不同线程类中的插入语句,而且使用线程池,数据库的连接次数是可以锁定在一个范围。

PottyHarry | 园豆:302 (菜鸟二级) | 2018-08-31 14:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册