fix(数据集): 检测数据集同步状态

This commit is contained in:
taojinlong 2022-07-27 18:18:50 +08:00
parent 08795f851d
commit 31f68d95b6
3 changed files with 28 additions and 9 deletions

View File

@ -2456,13 +2456,29 @@ public class DataSetTableService {
DatasetTableExample example = new DatasetTableExample();
example.createCriteria().andSyncStatusEqualTo(JobStatus.Underway.name());
List<DatasetTable> jobStoppeddDatasetTables = new ArrayList<>();
List<DatasetTable> syncDatasetTables = new ArrayList<>();
datasetTableMapper.selectByExample(example).forEach(datasetTable -> {
List<DatasetTable> datasetTables = datasetTableMapper.selectByExample(example);
datasetTables.forEach(datasetTable -> {
if (StringUtils.isNotEmpty(datasetTable.getQrtzInstance()) && !activeQrtzInstances.contains(datasetTable.getQrtzInstance().substring(0, datasetTable.getQrtzInstance().length() - 13))) {
jobStoppeddDatasetTables.add(datasetTable);
}else {
syncDatasetTables.add(datasetTable);
}
});
datasetTables.forEach(datasetTable -> {
DatasetTableTaskExample datasetTableTaskExample = new DatasetTableTaskExample();
DatasetTableTaskExample.Criteria criteria = datasetTableTaskExample.createCriteria();
criteria.andTableIdEqualTo(datasetTable.getId()).andLastExecStatusEqualTo(JobStatus.Underway.name());
if(CollectionUtils.isEmpty(dataSetTableTaskService.list(datasetTableTaskExample))){
DatasetTable record = new DatasetTable();
record.setSyncStatus(JobStatus.Error.name());
example.clear();
example.createCriteria().andIdEqualTo(datasetTable.getId());
datasetTableMapper.updateByExampleSelective(record, example);
}
});
if (CollectionUtils.isEmpty(jobStoppeddDatasetTables)) {
return;
}

View File

@ -333,12 +333,12 @@ public class ExtractDataService {
System.out.println(ignore.getMessage());
}
try {
dataSetTableTaskService.updateTaskStatus(datasetTableTask, lastExecStatus);
updateTableStatus(datasetTableId, lastExecStatus, execTime);
} catch (Exception ignore) {
System.out.println(ignore.getMessage());
}
try {
updateTableStatus(datasetTableId, lastExecStatus, execTime);
dataSetTableTaskService.updateTaskStatus(datasetTableTask, lastExecStatus);
} catch (Exception ignore) {
System.out.println(ignore.getMessage());
}
@ -392,11 +392,11 @@ public class ExtractDataService {
} catch (Exception ignore) {
}
try {
dataSetTableTaskService.updateTaskStatus(datasetTableTask, lastExecStatus);
updateTableStatus(datasetTableId, lastExecStatus, execTime);
} catch (Exception ignore) {
}
try {
updateTableStatus(datasetTableId, lastExecStatus, execTime);
dataSetTableTaskService.updateTaskStatus(datasetTableTask, lastExecStatus);
} catch (Exception ignore) {
}
}

View File

@ -452,19 +452,22 @@ public class DatasourceService {
}
private void checkAndUpdateDatasourceStatus(Datasource datasource, Boolean withMsg) {
Datasource record = new Datasource();
DatasourceExample example = new DatasourceExample();
example.createCriteria().andIdEqualTo(datasource.getId());
try {
Provider datasourceProvider = ProviderFactory.getProvider(datasource.getType());
DatasourceRequest datasourceRequest = new DatasourceRequest();
datasourceRequest.setDatasource(datasource);
String status = datasourceProvider.checkStatus(datasourceRequest);
datasource.setStatus(status);
datasourceMapper.updateByPrimaryKeySelective(datasource);
record.setStatus(status);
datasourceMapper.updateByExampleSelective(datasource, example);
} catch (Exception e) {
Datasource temp = datasourceMapper.selectByPrimaryKey(datasource.getId());
datasource.setStatus("Error");
record.setStatus("Error");
if (!StringUtils.equals(temp.getStatus(), "Error")) {
sendWebMsg(datasource);
datasourceMapper.updateByPrimaryKeySelective(datasource);
datasourceMapper.updateByExampleSelective(datasource, example);
}
}