diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/UtilMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/UtilMapper.java new file mode 100644 index 0000000000..e8842d8d9e --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/ext/UtilMapper.java @@ -0,0 +1,7 @@ +package io.dataease.base.mapper.ext; + + +public interface UtilMapper { + + Long currentTimestamp(); +} diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/UtilMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/UtilMapper.xml new file mode 100644 index 0000000000..a35e7f619e --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/ext/UtilMapper.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java index 14005e8ba9..a9c61f76f7 100644 --- a/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java +++ b/backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java @@ -6,6 +6,7 @@ import com.google.gson.Gson; import io.dataease.base.domain.*; import io.dataease.base.mapper.*; import io.dataease.base.mapper.ext.ExtDataSetTableMapper; +import io.dataease.base.mapper.ext.UtilMapper; import io.dataease.commons.constants.JobStatus; import io.dataease.commons.utils.*; import io.dataease.controller.request.dataset.DataSetTableRequest; @@ -880,12 +881,14 @@ public class DataSetTableService { return CollectionUtils.isNotEmpty(data); } + @Resource + private UtilMapper utilMapper; + @QuartzScheduled(cron = "0 0/3 * * * ?") public void updateDatasetTableStatus(){ List qrtzSchedulerStates = qrtzSchedulerStateMapper.selectByExample(null); - List activeQrtzInstances = qrtzSchedulerStates.stream().filter(qrtzSchedulerState -> qrtzSchedulerState.getLastCheckinTime() + qrtzSchedulerState.getCheckinInterval() + 1000 > System.currentTimeMillis()).map(QrtzSchedulerStateKey::getInstanceName).collect(Collectors.toList()); + List activeQrtzInstances = qrtzSchedulerStates.stream().filter(qrtzSchedulerState -> qrtzSchedulerState.getLastCheckinTime() + qrtzSchedulerState.getCheckinInterval() + 1000 > utilMapper.currentTimestamp()).map(QrtzSchedulerStateKey::getInstanceName).collect(Collectors.toList()); List jobStoppeddDatasetTables = new ArrayList<>(); - DatasetTableExample example = new DatasetTableExample(); example.createCriteria().andSyncStatusEqualTo(JobStatus.Underway.name());