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(); DatasetTableExample example = new DatasetTableExample();
example.createCriteria().andSyncStatusEqualTo(JobStatus.Underway.name()); example.createCriteria().andSyncStatusEqualTo(JobStatus.Underway.name());
List<DatasetTable> jobStoppeddDatasetTables = new ArrayList<>(); 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))) { if (StringUtils.isNotEmpty(datasetTable.getQrtzInstance()) && !activeQrtzInstances.contains(datasetTable.getQrtzInstance().substring(0, datasetTable.getQrtzInstance().length() - 13))) {
jobStoppeddDatasetTables.add(datasetTable); 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)) { if (CollectionUtils.isEmpty(jobStoppeddDatasetTables)) {
return; return;
} }

View File

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

View File

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