diff --git a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/constant/SystemConstants.java b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/constant/SystemConstants.java index f2dfc3bd..47015854 100644 --- a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/constant/SystemConstants.java +++ b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/constant/SystemConstants.java @@ -117,4 +117,9 @@ public interface SystemConstants { * 系统内置的回调任务ID */ Long CALLBACK_JOB_ID = -2000L; + + /** + * 客户端返回的非json对象,单值比如 "aa", 123等 + */ + String SINGLE_PARAM = "SINGLE_PARAM"; } diff --git a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/enums/JobOperationReasonEnum.java b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/enums/JobOperationReasonEnum.java index 17d79eb9..8eb8d785 100644 --- a/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/enums/JobOperationReasonEnum.java +++ b/easy-retry-common/easy-retry-common-core/src/main/java/com/aizuda/easy/retry/common/core/enums/JobOperationReasonEnum.java @@ -44,6 +44,7 @@ public enum JobOperationReasonEnum { * 工作流后续节点跳过执行配置 */ public static final List WORKFLOW_SUCCESSOR_SKIP_EXECUTE = Arrays.asList( - WORKFLOW_NODE_NO_OPERATION_REQUIRED.getReason(), WORKFLOW_DECISION_FOR_FALSE.getReason()); + WORKFLOW_NODE_NO_OPERATION_REQUIRED.getReason(), WORKFLOW_DECISION_FOR_FALSE.getReason(), + WORKFLOW_CONDITION_NODE_EXECUTOR_ERROR.reason); } diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/callback/AbstractClientCallbackHandler.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/callback/AbstractClientCallbackHandler.java index 4b878bed..3062ea83 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/callback/AbstractClientCallbackHandler.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/callback/AbstractClientCallbackHandler.java @@ -48,6 +48,8 @@ public abstract class AbstractClientCallbackHandler implements ClientCallbackHan JobTask jobTask = context.getJobTask(); RealJobExecutorDTO realJobExecutor = JobTaskConverter.INSTANCE.toRealJobExecutorDTO(JobTaskConverter.INSTANCE.toJobExecutorContext(job), jobTask); realJobExecutor.setClientId(ClientInfoUtils.clientId(context.getClientInfo())); + realJobExecutor.setWorkflowNodeId(context.getWorkflowNodeId()); + realJobExecutor.setWorkflowTaskBatchId(context.getWorkflowTaskBatchId()); ActorRef actorRef = ActorGenerator.jobRealTaskExecutorActor(); actorRef.tell(realJobExecutor, actorRef); LogMetaDTO logMetaDTO = JobTaskConverter.INSTANCE.toJobLogDTO(context); diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/expression/ExpressionInvocationHandler.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/expression/ExpressionInvocationHandler.java index 07a5c6cd..ad530e1d 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/expression/ExpressionInvocationHandler.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/expression/ExpressionInvocationHandler.java @@ -1,6 +1,7 @@ package com.aizuda.easy.retry.server.job.task.support.expression; import cn.hutool.core.util.StrUtil; +import com.aizuda.easy.retry.common.core.constant.SystemConstants; import com.aizuda.easy.retry.common.core.exception.EasyRetryCommonException; import com.aizuda.easy.retry.common.core.util.JsonUtil; import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException; @@ -32,7 +33,11 @@ public class ExpressionInvocationHandler implements InvocationHandler { String params = (String) expressionParams[0]; Map contextMap = new HashMap<>(); if (StrUtil.isNotBlank(params)) { - contextMap = JsonUtil.parseHashMap(params); + try { + contextMap = JsonUtil.parseHashMap(params); + } catch (Exception e) { + contextMap.put(SystemConstants.SINGLE_PARAM, params); + } } args[1] = new Object[]{contextMap}; diff --git a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/handler/JobTaskBatchHandler.java b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/handler/JobTaskBatchHandler.java index 5fc06c35..3582dd05 100644 --- a/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/handler/JobTaskBatchHandler.java +++ b/easy-retry-server/easy-retry-server-job-task/src/main/java/com/aizuda/easy/retry/server/job/task/support/handler/JobTaskBatchHandler.java @@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionSynchronizationManager; import org.springframework.util.CollectionUtils; @@ -41,6 +42,7 @@ public class JobTaskBatchHandler { @Autowired private JobTaskBatchMapper jobTaskBatchMapper; + @Transactional public boolean complete(CompleteJobBatchDTO completeJobBatchDTO) { List jobTasks = jobTaskMapper.selectList(