feat:(1.2.0-beta1): 1. 优化工作流手动停止时只允许未完成状态才能停止 2. 修复任务停止失败情况

This commit is contained in:
opensnail 2024-09-06 10:11:28 +08:00
parent 680e3fe976
commit a04c5f7c8e
5 changed files with 12 additions and 11 deletions

View File

@ -1,6 +1,7 @@
package com.aizuda.snailjob.server.job.task.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
@ -8,8 +9,9 @@ import lombok.Data;
* @date 2023-12-24 23:00:24
* @since 2.6.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class CompleteJobBatchDTO {
public class CompleteJobBatchDTO extends BaseDTO {
private Long jobId;
private Long workflowNodeId;

View File

@ -12,9 +12,4 @@ import java.time.LocalDateTime;
@EqualsAndHashCode(callSuper = true)
@Data
public class RealStopTaskInstanceDTO extends BaseDTO {
/**
* 下次触发时间
*/
private LocalDateTime nextTriggerAt;
}

View File

@ -1,7 +1,9 @@
package com.aizuda.snailjob.server.job.task.support.result.job;
import com.aizuda.snailjob.server.job.task.dto.BaseDTO;
import com.aizuda.snailjob.template.datasource.persistence.po.JobTask;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@ -10,15 +12,13 @@ import java.util.List;
* @date : 2024-09-04
* @since :1.2.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class JobExecutorResultContext {
public class JobExecutorResultContext extends BaseDTO {
private Long jobId;
private Long workflowNodeId;
private Long workflowTaskBatchId;
private Long taskBatchId;
private Integer jobOperationReason;
private Integer taskType;
private boolean isRetry;
private List<JobTask> jobTaskList;
@ -32,4 +32,5 @@ public class JobExecutorResultContext {
*/
private boolean taskBatchComplete;
}

View File

@ -3,6 +3,7 @@ package com.aizuda.snailjob.server.job.task.support.stop;
import akka.actor.AbstractActor;
import com.aizuda.snailjob.client.model.StopJobDTO;
import com.aizuda.snailjob.common.core.model.Result;
import com.aizuda.snailjob.common.core.util.JsonUtil;
import com.aizuda.snailjob.server.common.akka.ActorGenerator;
import com.aizuda.snailjob.server.common.cache.CacheRegisterTable;
import com.aizuda.snailjob.server.common.dto.RegisterNodeInfo;
@ -32,7 +33,7 @@ public class RealStopTaskActor extends AbstractActor {
try {
doStop(realStopTaskInstanceDTO);
} catch (Exception e) {
log.error("停止任务执行失败", e);
log.error("停止任务执行失败. [{}]", JsonUtil.toJsonString(realStopTaskInstanceDTO), e);
}
}).build();
}

View File

@ -223,6 +223,8 @@ public class WorkflowBatchServiceImpl implements WorkflowBatchService {
public Boolean stop(Long id) {
WorkflowTaskBatch workflowTaskBatch = workflowTaskBatchMapper.selectById(id);
Assert.notNull(workflowTaskBatch, () -> new SnailJobServerException("workflow batch can not be null."));
Assert.isTrue(JobTaskBatchStatusEnum.NOT_COMPLETE.contains(workflowTaskBatch.getTaskBatchStatus()),
() -> new SnailJobServerException("workflow batch status completed."));
workflowBatchHandler.stop(id, JobOperationReasonEnum.MANNER_STOP.getReason());
return Boolean.TRUE;