解决多线程导致某些数据表数据重复问题。

This commit is contained in:
gaoyutao
2025-09-05 14:38:46 +08:00
parent 8aaa60d7ef
commit 3a45714100
16 changed files with 122 additions and 91 deletions
@@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
@@ -129,7 +130,7 @@ public class InitialBandwidthTrafficServiceImpl implements IInitialBandwidthTraf
* @param initialBandwidthTraffic 流量数据
*/
@Override
@Transactional
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public void batchInsert(InitialBandwidthTraffic initialBandwidthTraffic) {
if (initialBandwidthTraffic == null) {
return;
@@ -7,6 +7,7 @@ import com.ruoyi.rocketmq.service.IInitialCpuInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -105,7 +106,7 @@ public class InitialCpuInfoServiceImpl implements IInitialCpuInfoService
* @return 结果
*/
@Override
@Transactional
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public int batchInsertInitialCpuInfo(List<InitialCpuInfo> list) {
try {
return initialCpuInfoMapper.batchInsertInitialCpuInfo(list);
@@ -7,6 +7,7 @@ import com.ruoyi.rocketmq.service.IInitialDiskInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -104,7 +105,7 @@ public class InitialDiskInfoServiceImpl implements IInitialDiskInfoService
* @return 结果
*/
@Override
@Transactional
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public int batchInsertInitialDiskInfo(List<InitialDiskInfo> list) {
try {
return initialDiskInfoMapper.batchInsertInitialDiskInfo(list);
@@ -7,6 +7,7 @@ import com.ruoyi.rocketmq.service.IInitialDockerInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -105,7 +106,7 @@ public class InitialDockerInfoServiceImpl implements IInitialDockerInfoService
* @return 结果
*/
@Override
@Transactional
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public int batchInsertInitialDockerInfo(List<InitialDockerInfo> initialDockerInfo){
try {
return initialDockerInfoMapper.batchInsertInitialDockerInfo(initialDockerInfo);
@@ -7,6 +7,7 @@ import com.ruoyi.rocketmq.service.IInitialMemoryInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -105,7 +106,7 @@ public class InitialMemoryInfoServiceImpl implements IInitialMemoryInfoService
* @return 结果
*/
@Override
@Transactional
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public int batchInsertInitialMemoryInfo(List<InitialMemoryInfo> list) {
try {
return initialMemoryInfoMapper.batchInsertInitialMemoryInfo(list);
@@ -7,6 +7,7 @@ import com.ruoyi.rocketmq.service.IInitialMountPointInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -104,7 +105,7 @@ public class InitialMountPointInfoServiceImpl implements IInitialMountPointInfoS
* @return 结果
*/
@Override
@Transactional
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public int batchInsertInitialMountPointInfo(List<InitialMountPointInfo> list) {
try {
return initialMountPointInfoMapper.batchInsertInitialMountPointInfo(list);
@@ -7,6 +7,7 @@ import com.ruoyi.rocketmq.service.IInitialSwitchInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -105,7 +106,7 @@ public class InitialSwitchInfoServiceImpl implements IInitialSwitchInfoService
* @return 结果
*/
@Override
@Transactional
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public int batchInsertInitialSwitchInfo(List<InitialSwitchInfo> list) {
try {
return initialSwitchInfoMapper.batchInsertInitialSwitchInfo(list);
@@ -8,6 +8,7 @@ import com.ruoyi.rocketmq.service.IInitialSwitchInfoTempService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -105,7 +106,7 @@ public class InitialSwitchInfoTempServiceImpl implements IInitialSwitchInfoTempS
* @return 结果
*/
@Override
@Transactional
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public int batchInsertInitialSwitchInfoTemp(List<InitialSwitchInfo> list) {
try {
return initialSwitchInfoTempMapper.batchInsertInitialSwitchInfoTemp(list);
@@ -7,6 +7,8 @@ import com.ruoyi.rocketmq.service.IInitialSystemInfoService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -103,7 +105,7 @@ public class InitialSystemInfoServiceImpl implements IInitialSystemInfoService
* @param initialSystemInfo 系统监控信息集合
* @return 结果
*/
@Override
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
public int batchInsertInitialSystemInfo(List<InitialSystemInfo> initialSystemInfo)
{
try {
@@ -112,7 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
)
</insert>
<insert id="batchInsert" parameterType="InitialBandwidthTraffic">
INSERT INTO ${tableName} (
INSERT IGNORE INTO ${tableName} (
`name`, `mac`, `status`, `type`, ipV4, `in_dropped`, `out_dropped`,
`in_speed`, `out_speed`,create_by, update_by, client_id, create_time
) VALUES
@@ -111,7 +111,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<insert id="batchInsertInitialSwitchInfo" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
INSERT INTO initial_switch_info
INSERT IGNORE INTO initial_switch_info
(
client_id, `name`, in_bytes, out_bytes, status, `type`, in_speed, out_speed, switch_ip,
create_by, update_by, create_time, update_time
@@ -110,7 +110,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</delete>
<insert id="batchInsertInitialSwitchInfoTemp" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
INSERT INTO initial_switch_info_temp
INSERT IGNORE INTO initial_switch_info_temp
(
client_id, name, in_bytes, out_bytes, status, type, in_speed, out_speed, switch_ip,
create_by, update_by, create_time, update_time