diff --git a/DirectoryV3.xml b/DirectoryV3.xml
new file mode 100644
index 000000000..dbd05a14c
--- /dev/null
+++ b/DirectoryV3.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobOperationReasonEnum.java b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobOperationReasonEnum.java
index 4c7d193a9..ac66835ad 100644
--- a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobOperationReasonEnum.java
+++ b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobOperationReasonEnum.java
@@ -81,11 +81,26 @@ public enum JobOperationReasonEnum {
* 工作流决策未通过
*/
WORKFLOW_DECISION_FAILED(14, "Judgment not passed"),
+ /**
+ * 手动调用
+ */
+ MANUAL_CALL(15, "Manual call"),
+ /**
+ * 由工作流中被调用
+ */
+ WORKFLOW_CALLED(16, "Called by workflow"),
;
+ /**
+ * 原因
+ */
private final int reason;
+
+ /**
+ * 描述
+ */
private final String desc;
/**
diff --git a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobTaskBatchStatusEnum.java b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobTaskBatchStatusEnum.java
index e01879f3c..696a3c9c0 100644
--- a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobTaskBatchStatusEnum.java
+++ b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/JobTaskBatchStatusEnum.java
@@ -51,7 +51,7 @@ public enum JobTaskBatchStatusEnum {
public static final List NOT_COMPLETE = Arrays.asList(WAITING.status, RUNNING.status);
/**
- * 任务完成 状态 包含 SUCCESS, FAIL, STOP, CANCEL
+ * 任务完成 状态 包含 SUCCESS 3, FAIL 4, STOP 5, CANCEL 6
*/
public static final List COMPLETED = Arrays.asList(SUCCESS.status, FAIL.status, STOP.status, CANCEL.status);
diff --git a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/StatusEnum.java b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/StatusEnum.java
index b5fd22704..8d76f5112 100644
--- a/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/StatusEnum.java
+++ b/snail-job-common/snail-job-common-core/src/main/java/com/aizuda/snailjob/common/core/enums/StatusEnum.java
@@ -13,7 +13,13 @@ import lombok.Getter;
@Getter
public enum StatusEnum {
+ /**
+ * 0、关闭、1、开启
+ */
NO(0),
+ /**
+ * 0、关闭、1、开启
+ */
YES(1);
private final Integer status;
diff --git a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/pekko/ActorGenerator.java b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/pekko/ActorGenerator.java
index ab958b01a..5c240a955 100644
--- a/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/pekko/ActorGenerator.java
+++ b/snail-job-server/snail-job-server-common/src/main/java/com/aizuda/snailjob/server/common/pekko/ActorGenerator.java
@@ -261,7 +261,7 @@ public class ActorGenerator {
/**
* Job任务执行阶段actor
- *
+ * @see com.aizuda.snailjob.server.job.task.support.dispatch.JobExecutorActor
* @return actor 引用
*/
public static ActorRef jobTaskExecutorActor() {
@@ -288,7 +288,7 @@ public class ActorGenerator {
/**
* Job任务执行结果actor
- *
+ * @see com.aizuda.snailjob.server.job.task.support.dispatch.JobExecutorResultActor
* @return actor 引用
*/
public static ActorRef jobTaskExecutorResultActor() {
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/AbstractClientCallbackHandler.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/AbstractClientCallbackHandler.java
index ef512bd43..a36c01c28 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/AbstractClientCallbackHandler.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/AbstractClientCallbackHandler.java
@@ -28,6 +28,8 @@ import java.time.Duration;
import java.util.Objects;
/**
+ * 客户端执行任务完成回调处理
+ *
* @author opensnail
* @date 2023-10-03 23:12:33
* @since 2.4.0
@@ -128,6 +130,9 @@ public abstract class AbstractClientCallbackHandler implements ClientCallbackHan
}
+ /**
+ * 判定是否需要重试
+ */
private boolean isNeedRetry(ClientCallbackContext context) {
JobTask jobTask = jobTaskMapper.selectById(context.getTaskId());
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/ClientCallbackFactory.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/ClientCallbackFactory.java
index 3bf0038f2..3e0d64390 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/ClientCallbackFactory.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/ClientCallbackFactory.java
@@ -18,6 +18,9 @@ public class ClientCallbackFactory {
CACHE.put(taskInstanceType, callbackHandler);
}
+ /**
+ * 根据任务类型获取任务执行器
+ */
public static ClientCallbackHandler getClientCallback(Integer type) {
return CACHE.get(JobTaskTypeEnum.valueOf(type));
}
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/ClusterClientCallbackHandler.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/ClusterClientCallbackHandler.java
index 70ba9e6be..5de32320b 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/ClusterClientCallbackHandler.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/callback/ClusterClientCallbackHandler.java
@@ -15,6 +15,8 @@ import org.springframework.stereotype.Component;
import java.util.Objects;
/**
+ * 集群任务执行结果回调处理
+ *
* @author opensnail
* @date 2023-10-03 23:12:12
* @since 2.4.0
@@ -44,6 +46,10 @@ public class ClusterClientCallbackHandler extends AbstractClientCallbackHandler
return ClientInfoUtils.generate(serverNode);
}
+ /**
+ * 调用Job任务执行结果actor
+ * @see com.aizuda.snailjob.server.job.task.support.dispatch.JobExecutorResultActor
+ */
@Override
protected void doCallback(ClientCallbackContext context) {
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorActor.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorActor.java
index a56875bc6..5324557b2 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorActor.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorActor.java
@@ -110,6 +110,7 @@ public class JobExecutorActor extends AbstractActor {
Job job = jobMapper.selectOne(queryWrapper.eq(Job::getId, taskExecute.getJobId()));
int taskStatus = JobTaskBatchStatusEnum.RUNNING.getStatus();
try {
+ // 操作原因
int operationReason = JobOperationReasonEnum.NONE.getReason();
if (Objects.isNull(job)) {
taskStatus = JobTaskBatchStatusEnum.CANCEL.getStatus();
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorResultActor.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorResultActor.java
index c52c70271..6521c4fe9 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorResultActor.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobExecutorResultActor.java
@@ -22,6 +22,8 @@ import org.springframework.stereotype.Component;
import java.util.Objects;
/**
+ * 任务执行结果处理
+ *
* @author opensnail
* @date 2023-10-05 17:16:35
* @since 2.4.0
@@ -74,6 +76,9 @@ public class JobExecutorResultActor extends AbstractActor {
}
+ /**
+ * 尝试完成任务
+ */
private void tryCompleteAndStop(JobExecutorResultDTO jobExecutorResultDTO) {
CompleteJobBatchDTO completeJobBatchDTO = JobTaskConverter.INSTANCE.toCompleteJobBatchDTO(jobExecutorResultDTO);
jobTaskBatchHandler.handleResult(completeJobBatchDTO);
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobTaskPrepareActor.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobTaskPrepareActor.java
index 00edeb5da..e880e0fdf 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobTaskPrepareActor.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/JobTaskPrepareActor.java
@@ -53,7 +53,7 @@ public class JobTaskPrepareActor extends AbstractActor {
private void doPrepare(JobTaskPrepareDTO prepare) {
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper()
.eq(JobTaskBatch::getJobId, prepare.getJobId())
- .in(JobTaskBatch::getTaskBatchStatus, NOT_COMPLETE);
+ .in(JobTaskBatch::getTaskBatchStatus, NOT_COMPLETE);//未完成状态
JobTaskExecutorSceneEnum jobTaskExecutorSceneEnum = JobTaskExecutorSceneEnum.get(
prepare.getTaskExecutorScene());
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/WorkflowExecutorActor.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/WorkflowExecutorActor.java
index 2a243a87f..2fb88fbe3 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/WorkflowExecutorActor.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/dispatch/WorkflowExecutorActor.java
@@ -47,6 +47,8 @@ import java.util.stream.Collectors;
import static com.aizuda.snailjob.common.core.enums.JobOperationReasonEnum.WORKFLOW_SUCCESSOR_SKIP_EXECUTION;
/**
+ * 工作流执行器
+ *
* @author: xiaowoniu
* @date : 2023-12-22 10:34
* @since : 2.6.0
@@ -255,6 +257,9 @@ public class WorkflowExecutorActor extends AbstractActor {
}
}
+ /**
+ * 前置任务是否已完成
+ */
private boolean arePredecessorsComplete(final WorkflowNodeTaskExecuteDTO taskExecute, Set predecessors,
Map> jobTaskBatchMap, WorkflowNode waitExecWorkflowNode,
Map workflowNodeMap) {
@@ -303,6 +308,12 @@ public class WorkflowExecutorActor extends AbstractActor {
return Boolean.TRUE;
}
+ /**
+ * 更新工作流任务批次
+ *
+ * @param taskStatus 任务批次状态
+ * @param operationReason 操作原因
+ */
private void handlerTaskBatch(WorkflowNodeTaskExecuteDTO taskExecute, int taskStatus, int operationReason) {
WorkflowTaskBatch jobTaskBatch = new WorkflowTaskBatch();
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/executor/workflow/WorkflowWorkflowExecutor.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/executor/workflow/WorkflowWorkflowExecutor.java
index b4152b3cd..80a09c05c 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/executor/workflow/WorkflowWorkflowExecutor.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/executor/workflow/WorkflowWorkflowExecutor.java
@@ -1,12 +1,19 @@
package com.aizuda.snailjob.server.job.task.support.executor.workflow;
+import com.aizuda.snailjob.common.core.constant.SystemConstants;
import com.aizuda.snailjob.common.core.enums.JobOperationReasonEnum;
import com.aizuda.snailjob.common.core.enums.JobTaskBatchStatusEnum;
import com.aizuda.snailjob.common.core.enums.JobTaskStatusEnum;
import com.aizuda.snailjob.common.core.enums.WorkflowNodeTypeEnum;
+import com.aizuda.snailjob.common.log.SnailJobLog;
+import com.aizuda.snailjob.server.common.dto.JobLogMetaDTO;
+import com.aizuda.snailjob.template.datasource.persistence.po.JobTask;
+import com.aizuda.snailjob.template.datasource.persistence.po.JobTaskBatch;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
+import static com.aizuda.snailjob.common.core.enums.JobOperationReasonEnum.WORKFLOW_SUCCESSOR_SKIP_EXECUTION;
+
@Component
@RequiredArgsConstructor
public class WorkflowWorkflowExecutor extends AbstractWorkflowExecutor {
@@ -23,6 +30,27 @@ public class WorkflowWorkflowExecutor extends AbstractWorkflowExecutor {
@Override
protected void afterExecute(WorkflowExecutorContext context) {
+ JobTaskBatch jobTaskBatch = generateJobTaskBatch(context);
+
+ JobTask jobTask = generateJobTask(context, jobTaskBatch);
+
+ JobLogMetaDTO jobLogMetaDTO = new JobLogMetaDTO();
+ jobLogMetaDTO.setNamespaceId(context.getNamespaceId());
+ jobLogMetaDTO.setGroupName(context.getGroupName());
+ jobLogMetaDTO.setTaskBatchId(jobTaskBatch.getId());
+ jobLogMetaDTO.setJobId(SystemConstants.WORKFLOW_JOB_ID);
+ jobLogMetaDTO.setTaskId(jobTask.getId());
+ if (jobTaskBatch.getTaskBatchStatus() == JobTaskStatusEnum.SUCCESS.getStatus()) {
+ SnailJobLog.REMOTE.info("Node [{}] workflow success.\nworkflow params: {} \nworkflow result: [{}] <|>{}<|>", context.getWorkflowNodeId(), context.getWfContext(), context.getEvaluationResult(), jobLogMetaDTO);
+ } else if (jobTaskBatch.getTaskBatchStatus() == JobTaskStatusEnum.CANCEL.getStatus()) {
+ if (WORKFLOW_SUCCESSOR_SKIP_EXECUTION.contains(context.getParentOperationReason())) {
+ SnailJobLog.REMOTE.warn("Node [{}] cancels workflow. Cancellation reason: Current task does not require processing <|>{}<|>", context.getWorkflowNodeId(), jobLogMetaDTO);
+ } else {
+ SnailJobLog.REMOTE.warn("Node [{}] cancels workflow. Cancellation reason: Task status is closed <|>{}<|>", context.getWorkflowNodeId(), jobLogMetaDTO);
+ }
+ } else {
+ SnailJobLog.REMOTE.error("Node [{}] fail to workflow.\nReason: {} <|>{}<|>", context.getWorkflowNodeId(), context.getLogMessage(), jobLogMetaDTO);
+ }
}
@Override
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/JobTaskBatchHandler.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/JobTaskBatchHandler.java
index c4dda3d92..f3c1efdb2 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/JobTaskBatchHandler.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/JobTaskBatchHandler.java
@@ -54,6 +54,9 @@ public class JobTaskBatchHandler {
private final GroupConfigMapper groupConfigMapper;
private final List resultHandlerList;
+ /**
+ * 处理任务批次结果
+ */
@Transactional
public boolean handleResult(CompleteJobBatchDTO completeJobBatchDTO) {
Assert.notNull(completeJobBatchDTO.getTaskType(), ()-> new SnailJobServerException("taskType can not be null"));
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/WorkflowBatchHandler.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/WorkflowBatchHandler.java
index 134d654d2..109b5d054 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/WorkflowBatchHandler.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/handler/WorkflowBatchHandler.java
@@ -103,6 +103,9 @@ public class WorkflowBatchHandler {
return complete(workflowTaskBatchId, null);
}
+ /**
+ * 工作流执行完成
+ */
public boolean complete(Long workflowTaskBatchId, WorkflowTaskBatch workflowTaskBatch) {
workflowTaskBatch = Optional.ofNullable(workflowTaskBatch)
.orElseGet(() -> workflowTaskBatchMapper.selectById(workflowTaskBatchId));
@@ -175,6 +178,9 @@ public class WorkflowBatchHandler {
}
+ /**
+ * 修改工作流任务批次状态
+ */
private void handlerTaskBatch(Long workflowTaskBatchId, int taskStatus, int operationReason) {
WorkflowTaskBatch jobTaskBatch = new WorkflowTaskBatch();
@@ -312,6 +318,9 @@ public class WorkflowBatchHandler {
}
}
+ /**
+ * 开启下一个工作流节点
+ */
public void openNextNode(WorkflowNodeTaskExecuteDTO taskExecuteDTO) {
if (Objects.isNull(taskExecuteDTO.getParentId()) || Objects.isNull(taskExecuteDTO.getWorkflowTaskBatchId()) || Long.valueOf(0).equals(taskExecuteDTO.getWorkflowTaskBatchId())) {
return;
@@ -330,12 +339,16 @@ public class WorkflowBatchHandler {
}
}
+ /**
+ * 通知工作流执行器
+ * @see com.aizuda.snailjob.server.job.task.support.dispatch.WorkflowExecutorActor
+ */
private void tellWorkflowTaskExecutor(WorkflowNodeTaskExecuteDTO taskExecuteDTO) {
try {
ActorRef actorRef = ActorGenerator.workflowTaskExecutorActor();
actorRef.tell(taskExecuteDTO, actorRef);
} catch (Exception e) {
- SnailJobLog.LOCAL.error("Task scheduling execution failed", e);
+ SnailJobLog.LOCAL.error("Task scheduling execution failed", e); //任务调度执行失败
}
}
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/prepare/job/TerminalJobPrepareHandler.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/prepare/job/TerminalJobPrepareHandler.java
index 47b360587..d25dbb713 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/prepare/job/TerminalJobPrepareHandler.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/prepare/job/TerminalJobPrepareHandler.java
@@ -29,6 +29,9 @@ public class TerminalJobPrepareHandler extends AbstractJobPrepareHandler {
@Autowired
private JobTaskBatchGenerator jobTaskBatchGenerator;
+ /**
+ * 任务完成状态
+ */
@Override
public boolean matches(Integer status) {
return COMPLETED.contains(status);
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/prepare/job/WaitJobPrepareHandler.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/prepare/job/WaitJobPrepareHandler.java
index f61152e67..4e24dce96 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/prepare/job/WaitJobPrepareHandler.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/prepare/job/WaitJobPrepareHandler.java
@@ -13,7 +13,7 @@ import java.text.MessageFormat;
import java.time.Duration;
/**
- * 处理处于{@link JobTaskBatchStatusEnum::WAIT}状态的任务
+ * 处理处于{@link JobTaskBatchStatusEnum::WAIT}待处理状态的任务
*
* @author opensnail
* @date 2023-10-05 18:29:22
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/request/ReportDispatchResultPostHttpRequestHandler.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/request/ReportDispatchResultPostHttpRequestHandler.java
index cd7b674c2..e47d1a76f 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/request/ReportDispatchResultPostHttpRequestHandler.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/request/ReportDispatchResultPostHttpRequestHandler.java
@@ -23,6 +23,8 @@ import java.util.Optional;
import static com.aizuda.snailjob.common.core.constant.SystemConstants.HTTP_PATH.REPORT_JOB_DISPATCH_RESULT;
/**
+ * 客户端执行完成后上报结果
+ *
* @author opensnail
* @date 2023-09-30 23:01:58
* @since 2.4.0
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/result/job/AbstractJobExecutorResultHandler.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/result/job/AbstractJobExecutorResultHandler.java
index 88c92c2a8..be196e2d5 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/result/job/AbstractJobExecutorResultHandler.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/result/job/AbstractJobExecutorResultHandler.java
@@ -84,7 +84,7 @@ public abstract class AbstractJobExecutorResultHandler implements JobExecutorRes
doHandleSuccess(context);
}
- // 开启下一个工作流节点
+ // 开启下一个工作流节点(如果需要)
openNextWorkflowNode(context);
boolean res = updateStatus(context, taskBatchStatus);
@@ -104,6 +104,9 @@ public abstract class AbstractJobExecutorResultHandler implements JobExecutorRes
workflowBatchHandler.openNextNode(taskExecuteDTO);
}
+ /**
+ * 更新任务批次状态
+ */
protected boolean updateStatus(final JobExecutorResultContext context, final Integer taskBatchStatus) {
JobTaskBatch jobTaskBatch = new JobTaskBatch();
jobTaskBatch.setId(context.getTaskBatchId());
@@ -135,6 +138,9 @@ public abstract class AbstractJobExecutorResultHandler implements JobExecutorRes
instanceInterrupt.stop(stopJobContext);
}
+ /**
+ * 成功(除MapReduce任务外啥也没干)
+ */
protected abstract void doHandleSuccess(final JobExecutorResultContext context);
protected abstract void doHandleStop(final JobExecutorResultContext context);
diff --git a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/timer/WorkflowTimeoutCheckTask.java b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/timer/WorkflowTimeoutCheckTask.java
index 736393dce..2907db498 100644
--- a/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/timer/WorkflowTimeoutCheckTask.java
+++ b/snail-job-server/snail-job-server-job-task/src/main/java/com/aizuda/snailjob/server/job/task/support/timer/WorkflowTimeoutCheckTask.java
@@ -18,6 +18,7 @@ import java.text.MessageFormat;
import java.util.Objects;
/**
+ * 工作流任务超时检查任务
* @author opensnail
* @date 2024-05-20 22:25:12
* @since sj_1.0.0