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