我在一个springjava8应用程序中工作,我有一个异步生成标签(pdf生成)的函数。它包含一个循环,通常它会运行1000多个,它会生成1000多个pdf标签。在每个循环结束后,我们需要更新数据库,以便我们只保存状态,即最初它保存numberofgeneratedcount=0,在每个标签之后,我们只增加变量并更新表。不需要在每个循环结束时将这个递增的计数保存到db,我们需要的是在固定的时间间隔内更新数据库,以减少数据库插入的负载。目前我的代码是
// Label is a database model class labeldb is variable of that
//commonDao.saveLabelToDb function to save Label object
int numberOfgeneratedCount =0;
labeldb.setProcessedOrderCount(numberOfgeneratedCount);
commonDao.saveLabelToDb(labeldb);
for(Order order: orders){
generated = true;
try{
// pdf generation code
}catch Exception e{
// catch block here
generated = false;
}
if(generated){
numberOfgeneratedCount++;
deliveryLabeldb.setProcessedOrderCount(numberOfgeneratedCount);
commonDao.saveLabelToDb(labeldb );
}
}
为了提高性能,我们只需要每隔10秒更新一次数据库。任何帮助都将不胜感激
1条答案
按热度按时间snz8szmq1#
我用下面的代码做了这个,我不确定这是不是一个好的解决方案,有人请改进使用一些内置函数