You've already forked DataMate
[Feature] Refactor project to use 'datamate' naming convention for services and configurations (#14)
* Enhance CleaningTaskService to track cleaning process progress and update ExecutorType to DATAMATE * Refactor project to use 'datamate' naming convention for services and configurations
This commit is contained in:
@@ -14,7 +14,7 @@ import java.time.Duration;
|
||||
|
||||
@Slf4j
|
||||
public class RuntimeClient {
|
||||
private static final String BASE_URL = "http://runtime:8081/api";
|
||||
private static final String BASE_URL = "http://datamate-runtime:8081/api";
|
||||
|
||||
private static final String CREATE_TASK_URL = BASE_URL + "/task/{0}/submit";
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.datamate.cleaning.domain.model.TaskProcess;
|
||||
import com.datamate.cleaning.infrastructure.persistence.mapper.CleaningResultMapper;
|
||||
import com.datamate.cleaning.infrastructure.persistence.mapper.CleaningTaskMapper;
|
||||
import com.datamate.cleaning.infrastructure.persistence.mapper.OperatorInstanceMapper;
|
||||
import com.datamate.cleaning.interfaces.dto.CleaningProcess;
|
||||
import com.datamate.cleaning.interfaces.dto.CleaningTask;
|
||||
import com.datamate.cleaning.interfaces.dto.CreateCleaningTaskRequest;
|
||||
import com.datamate.cleaning.interfaces.dto.OperatorInstance;
|
||||
@@ -55,7 +56,14 @@ public class CleaningTaskService {
|
||||
|
||||
public List<CleaningTask> getTasks(String status, String keywords, Integer page, Integer size) {
|
||||
Integer offset = page * size;
|
||||
return cleaningTaskMapper.findTasks(status, keywords, size, offset);
|
||||
List<CleaningTask> tasks = cleaningTaskMapper.findTasks(status, keywords, size, offset);
|
||||
tasks.forEach(this::setProcess);
|
||||
return tasks;
|
||||
}
|
||||
|
||||
private void setProcess(CleaningTask task) {
|
||||
int count = cleaningResultMapper.countByInstanceId(task.getId());
|
||||
task.setProgress(CleaningProcess.of(task.getFileCount(), count));
|
||||
}
|
||||
|
||||
public int countTasks(String status, String keywords) {
|
||||
@@ -80,6 +88,7 @@ public class CleaningTaskService {
|
||||
task.setDestDatasetId(destDataset.getId());
|
||||
task.setDestDatasetName(destDataset.getName());
|
||||
task.setBeforeSize(srcDataset.getTotalSize());
|
||||
task.setFileCount(srcDataset.getFileCount());
|
||||
cleaningTaskMapper.insertTask(task);
|
||||
|
||||
List<OperatorInstancePo> instancePos = request.getInstance().stream()
|
||||
@@ -93,7 +102,9 @@ public class CleaningTaskService {
|
||||
}
|
||||
|
||||
public CleaningTask getTask(String taskId) {
|
||||
return cleaningTaskMapper.findTaskById(taskId);
|
||||
CleaningTask task = cleaningTaskMapper.findTaskById(taskId);
|
||||
setProcess(task);
|
||||
return task;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@@ -113,7 +124,7 @@ public class CleaningTaskService {
|
||||
process.setDatasetId(task.getDestDatasetId());
|
||||
process.setDatasetPath(FLOW_PATH + "/" + task.getId() + "/dataset.jsonl");
|
||||
process.setExportPath(DATASET_PATH + "/" + task.getDestDatasetId());
|
||||
process.setExecutorType(ExecutorType.DATA_PLATFORM.getValue());
|
||||
process.setExecutorType(ExecutorType.DATAMATE.getValue());
|
||||
process.setProcess(instances.stream()
|
||||
.map(instance -> Map.of(instance.getId(), instance.getOverrides()))
|
||||
.toList());
|
||||
|
||||
@@ -4,7 +4,7 @@ import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum ExecutorType {
|
||||
DATA_PLATFORM("data_platform"),
|
||||
DATAMATE("datamate"),
|
||||
DATA_JUICER_RAY("ray"),
|
||||
DATA_JUICER_DEFAULT("default");
|
||||
|
||||
|
||||
@@ -6,4 +6,6 @@ import org.apache.ibatis.annotations.Param;
|
||||
@Mapper
|
||||
public interface CleaningResultMapper {
|
||||
void deleteByInstanceId(@Param("instanceId") String instanceId);
|
||||
|
||||
int countByInstanceId(@Param("instanceId") String instanceId);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@ package com.datamate.cleaning.interfaces.dto;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
|
||||
/**
|
||||
* CleaningProcess
|
||||
*/
|
||||
@@ -16,5 +19,20 @@ public class CleaningProcess {
|
||||
private Integer totalFileNum;
|
||||
|
||||
private Integer finishedFileNum;
|
||||
|
||||
public CleaningProcess(int totalFileNum, int finishedFileNum) {
|
||||
this.totalFileNum = totalFileNum;
|
||||
this.finishedFileNum = finishedFileNum;
|
||||
if (totalFileNum == 0) {
|
||||
this.process = 0.0f;
|
||||
} else {
|
||||
this.process = BigDecimal.valueOf(finishedFileNum * 100L)
|
||||
.divide(BigDecimal.valueOf(totalFileNum), 2, RoundingMode.HALF_UP).floatValue();
|
||||
}
|
||||
}
|
||||
|
||||
public static CleaningProcess of(int totalFileNum, int finishedFileNum) {
|
||||
return new CleaningProcess(totalFileNum, finishedFileNum);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,8 @@ public class CleaningTask {
|
||||
|
||||
private long afterSize;
|
||||
|
||||
private int fileCount;
|
||||
|
||||
/**
|
||||
* 任务当前状态
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user