forked from github/dataease
fix(数据集): 检测数据集同步状态
This commit is contained in:
parent
08795f851d
commit
31f68d95b6
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user