情景:一个定时任务,每天凌晨同步某一张a表数据,其需要查询b表和调用其他平台接口,其同步的数据有将近3w条,此时写在一个事务中就出现了问题
且 MYSQL的事务超时时间没法改(其他项目也用,且因为一个功能就改数据库配置感觉不合理)
我的解决方法:
把查询的逻辑和删除插入的逻辑分别写在2个方法中 : sheducleDealBuildingRiskLevel 和 insertBafcBuildingRiskLevelList
@Transactional(rollbackFor = Exception.class) public Boolean sheducleDealBuildingRiskLevel()
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW) private Boolean insertBafcBuildingRiskLevelList(List<BafcBuildingRiskLevel> bafcBuildingRiskLevelList){ //清空bafc_building_risk_level表 log.info("<<<<<<<<<<<<<<<<<<<清空bafc_building_risk_level表<<<<<<<<<<<<<<<<<<<<<<<<<<<"); delete(new EntityWra