feat:(1.2.0-beta1): 1. 优化工作流手动停止时只允许未完成状态才能停止 2. 修复任务停止失败情况
This commit is contained in:
parent
680e3fe976
commit
a04c5f7c8e
@ -1,6 +1,7 @@
|
|||||||
package com.aizuda.snailjob.server.job.task.dto;
|
package com.aizuda.snailjob.server.job.task.dto;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -8,8 +9,9 @@ import lombok.Data;
|
|||||||
* @date 2023-12-24 23:00:24
|
* @date 2023-12-24 23:00:24
|
||||||
* @since 2.6.0
|
* @since 2.6.0
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class CompleteJobBatchDTO {
|
public class CompleteJobBatchDTO extends BaseDTO {
|
||||||
|
|
||||||
private Long jobId;
|
private Long jobId;
|
||||||
private Long workflowNodeId;
|
private Long workflowNodeId;
|
||||||
|
@ -12,9 +12,4 @@ import java.time.LocalDateTime;
|
|||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class RealStopTaskInstanceDTO extends BaseDTO {
|
public class RealStopTaskInstanceDTO extends BaseDTO {
|
||||||
|
|
||||||
/**
|
|
||||||
* 下次触发时间
|
|
||||||
*/
|
|
||||||
private LocalDateTime nextTriggerAt;
|
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
package com.aizuda.snailjob.server.job.task.support.result.job;
|
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 com.aizuda.snailjob.template.datasource.persistence.po.JobTask;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -10,15 +12,13 @@ import java.util.List;
|
|||||||
* @date : 2024-09-04
|
* @date : 2024-09-04
|
||||||
* @since :1.2.0
|
* @since :1.2.0
|
||||||
*/
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@Data
|
@Data
|
||||||
public class JobExecutorResultContext {
|
public class JobExecutorResultContext extends BaseDTO {
|
||||||
|
|
||||||
private Long jobId;
|
|
||||||
private Long workflowNodeId;
|
private Long workflowNodeId;
|
||||||
private Long workflowTaskBatchId;
|
private Long workflowTaskBatchId;
|
||||||
private Long taskBatchId;
|
|
||||||
private Integer jobOperationReason;
|
private Integer jobOperationReason;
|
||||||
private Integer taskType;
|
|
||||||
private boolean isRetry;
|
private boolean isRetry;
|
||||||
private List<JobTask> jobTaskList;
|
private List<JobTask> jobTaskList;
|
||||||
|
|
||||||
@ -32,4 +32,5 @@ public class JobExecutorResultContext {
|
|||||||
*/
|
*/
|
||||||
private boolean taskBatchComplete;
|
private boolean taskBatchComplete;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ package com.aizuda.snailjob.server.job.task.support.stop;
|
|||||||
import akka.actor.AbstractActor;
|
import akka.actor.AbstractActor;
|
||||||
import com.aizuda.snailjob.client.model.StopJobDTO;
|
import com.aizuda.snailjob.client.model.StopJobDTO;
|
||||||
import com.aizuda.snailjob.common.core.model.Result;
|
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.akka.ActorGenerator;
|
||||||
import com.aizuda.snailjob.server.common.cache.CacheRegisterTable;
|
import com.aizuda.snailjob.server.common.cache.CacheRegisterTable;
|
||||||
import com.aizuda.snailjob.server.common.dto.RegisterNodeInfo;
|
import com.aizuda.snailjob.server.common.dto.RegisterNodeInfo;
|
||||||
@ -32,7 +33,7 @@ public class RealStopTaskActor extends AbstractActor {
|
|||||||
try {
|
try {
|
||||||
doStop(realStopTaskInstanceDTO);
|
doStop(realStopTaskInstanceDTO);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("停止任务执行失败", e);
|
log.error("停止任务执行失败. [{}]", JsonUtil.toJsonString(realStopTaskInstanceDTO), e);
|
||||||
}
|
}
|
||||||
}).build();
|
}).build();
|
||||||
}
|
}
|
||||||
|
@ -223,6 +223,8 @@ public class WorkflowBatchServiceImpl implements WorkflowBatchService {
|
|||||||
public Boolean stop(Long id) {
|
public Boolean stop(Long id) {
|
||||||
WorkflowTaskBatch workflowTaskBatch = workflowTaskBatchMapper.selectById(id);
|
WorkflowTaskBatch workflowTaskBatch = workflowTaskBatchMapper.selectById(id);
|
||||||
Assert.notNull(workflowTaskBatch, () -> new SnailJobServerException("workflow batch can not be null."));
|
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());
|
workflowBatchHandler.stop(id, JobOperationReasonEnum.MANNER_STOP.getReason());
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
|
Loading…
Reference in New Issue
Block a user