```添加同步以防止查询日志明细时的潜在竞态条件

在`queryIntegrationTaskLivingDetails`方法中引入同步,以防止在查询日志明细时出现潜在的竞态条件问题。这确保了在多线程环境中访问共享资源时的数据一致性。
```
This commit is contained in:
liuy 2024-09-24 11:54:17 +08:00
parent abf1c5eaf4
commit 9f6484c617
1 changed files with 9 additions and 5 deletions

View File

@ -23,16 +23,20 @@ public class IntegrationTaskLivingDetailsUtil {
@Autowired
private IIntegrationTaskLivingDetailsDao iIntegrationTaskLivingDetailsDao;
private static final Object OBJECT_LOCK = new Object();
/**
* 批量查询日志明细
*
* @author liuyang
*/
public List<IntegrationTaskLivingDetailsEntity> queryIntegrationTaskLivingDetails(String primaryKey, String pluginId) throws Exception {
QueryIntegrationTaskLivingDetails queryIntegrationTaskLivingDetails = new QueryIntegrationTaskLivingDetails();
queryIntegrationTaskLivingDetails.setRoot_app_pk_s(primaryKey);
queryIntegrationTaskLivingDetails.setParam_new_state(ProfilesActiveConstant.LOG_STATUS_Y_H);
queryIntegrationTaskLivingDetails.setPluginId(pluginId);
return (List<IntegrationTaskLivingDetailsEntity>) iIntegrationTaskLivingDetailsDao.query(queryIntegrationTaskLivingDetails);
synchronized (OBJECT_LOCK) {
QueryIntegrationTaskLivingDetails queryIntegrationTaskLivingDetails = new QueryIntegrationTaskLivingDetails();
queryIntegrationTaskLivingDetails.setRoot_app_pk_s(primaryKey);
queryIntegrationTaskLivingDetails.setParam_new_state(ProfilesActiveConstant.LOG_STATUS_Y_H);
queryIntegrationTaskLivingDetails.setPluginId(pluginId);
return (List<IntegrationTaskLivingDetailsEntity>) iIntegrationTaskLivingDetailsDao.query(queryIntegrationTaskLivingDetails);
}
}
}