feat: 2.6.0

1. 优化任务参数
This commit is contained in:
byteblogs168 2024-01-08 23:17:12 +08:00
parent 7c9f317dd3
commit 9ba2aae241
4 changed files with 10 additions and 5 deletions

View File

@ -140,7 +140,7 @@ public abstract class AbstractWorkflowExecutor implements WorkflowExecutor, Init
jobTask.setClientInfo(StrUtil.EMPTY); jobTask.setClientInfo(StrUtil.EMPTY);
jobTask.setTaskBatchId(jobTaskBatch.getId()); jobTask.setTaskBatchId(jobTaskBatch.getId());
jobTask.setArgsType(1); jobTask.setArgsType(1);
jobTask.setArgsStr(Optional.ofNullable(context.getResult()).orElse(StrUtil.EMPTY)); jobTask.setArgsStr(Optional.ofNullable(context.getTaskResult()).orElse(StrUtil.EMPTY));
jobTask.setTaskStatus(context.getJobTaskStatus()); jobTask.setTaskStatus(context.getJobTaskStatus());
jobTask.setResultMessage(String.valueOf(context.getEvaluationResult())); jobTask.setResultMessage(String.valueOf(context.getEvaluationResult()));
Assert.isTrue(1 == jobTaskMapper.insert(jobTask), () -> new EasyRetryServerException("新增任务实例失败")); Assert.isTrue(1 == jobTaskMapper.insert(jobTask), () -> new EasyRetryServerException("新增任务实例失败"));

View File

@ -77,6 +77,7 @@ public class CallbackWorkflowExecutor extends AbstractWorkflowExecutor {
.eq(JobTask::getTaskBatchId, context.getTaskBatchId())); .eq(JobTask::getTaskBatchId, context.getTaskBatchId()));
List<CallbackParamsDTO> callbackParamsList = WorkflowTaskConverter.INSTANCE.toCallbackParamsDTO(jobTasks); List<CallbackParamsDTO> callbackParamsList = WorkflowTaskConverter.INSTANCE.toCallbackParamsDTO(jobTasks);
context.setTaskResult(JsonUtil.toJsonString(callbackParamsList));
String result = null; String result = null;
try { try {
Map<String, String> uriVariables = new HashMap<>(); Map<String, String> uriVariables = new HashMap<>();
@ -87,7 +88,7 @@ public class CallbackWorkflowExecutor extends AbstractWorkflowExecutor {
result = exchange.getBody(); result = exchange.getBody();
log.info("回调结果. webHook:[{}],参数: [{}]", decisionConfig.getWebhook(), result); log.info("回调结果. webHook:[{}],参数: [{}]", decisionConfig.getWebhook(), result);
} catch (Exception e) { } catch (Exception e) {
log.error("回调异常. webHook:[{}],参数: [{}]", decisionConfig.getWebhook(), context.getResult(), e); log.error("回调异常. webHook:[{}],参数: [{}]", decisionConfig.getWebhook(), context.getTaskResult(), e);
taskBatchStatus = JobTaskBatchStatusEnum.FAIL.getStatus(); taskBatchStatus = JobTaskBatchStatusEnum.FAIL.getStatus();
operationReason = JobOperationReasonEnum.WORKFLOW_CALLBACK_NODE_EXECUTOR_ERROR.getReason(); operationReason = JobOperationReasonEnum.WORKFLOW_CALLBACK_NODE_EXECUTOR_ERROR.getReason();
jobTaskStatus = JobTaskStatusEnum.FAIL.getStatus(); jobTaskStatus = JobTaskStatusEnum.FAIL.getStatus();

View File

@ -19,6 +19,7 @@ import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMappe
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTaskBatch; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTaskBatch;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -77,7 +78,9 @@ public class ConditionWorkflowExecutor extends AbstractWorkflowExecutor {
.select(JobTask::getResultMessage) .select(JobTask::getResultMessage)
.eq(JobTask::getTaskBatchId, context.getTaskBatchId())); .eq(JobTask::getTaskBatchId, context.getTaskBatchId()));
List<String> taskResult = Lists.newArrayList();
for (JobTask jobTask : jobTasks) { for (JobTask jobTask : jobTasks) {
taskResult.add(jobTask.getResultMessage());
boolean execResult = (Boolean) Optional.ofNullable(expressionEngine.eval(decisionConfig.getNodeExpression(), jobTask.getResultMessage())).orElse(Boolean.FALSE); boolean execResult = (Boolean) Optional.ofNullable(expressionEngine.eval(decisionConfig.getNodeExpression(), jobTask.getResultMessage())).orElse(Boolean.FALSE);
if (Objects.equals(decisionConfig.getLogicalCondition(), LogicalConditionEnum.AND.getCode())) { if (Objects.equals(decisionConfig.getLogicalCondition(), LogicalConditionEnum.AND.getCode())) {
@ -90,12 +93,12 @@ public class ConditionWorkflowExecutor extends AbstractWorkflowExecutor {
} }
log.info("执行条件表达式:[{}],参数: [{}] 结果:[{}]", decisionConfig.getNodeExpression(), jobTask.getResultMessage(), result); log.info("执行条件表达式:[{}],参数: [{}] 结果:[{}]", decisionConfig.getNodeExpression(), jobTask.getResultMessage(), result);
} }
context.setTaskResult(JsonUtil.toJsonString(taskResult));
result = tempResult; result = tempResult;
} catch (Exception e) { } catch (Exception e) {
log.error("执行条件表达式解析异常. 表达式:[{}],参数: [{}]", decisionConfig.getNodeExpression(), context.getResult(), e); log.error("执行条件表达式解析异常. 表达式:[{}],参数: [{}]", decisionConfig.getNodeExpression(), context.getTaskResult(), e);
taskBatchStatus = JobTaskBatchStatusEnum.FAIL.getStatus(); taskBatchStatus = JobTaskBatchStatusEnum.FAIL.getStatus();
operationReason = JobOperationReasonEnum.WORKFLOW_CONDITION_NODE_EXECUTOR_ERROR.getReason(); operationReason = JobOperationReasonEnum.WORKFLOW_CONDITION_NODE_EXECUTOR_ERROR.getReason();
jobTaskStatus = JobTaskStatusEnum.FAIL.getStatus(); jobTaskStatus = JobTaskStatusEnum.FAIL.getStatus();
@ -114,6 +117,7 @@ public class ConditionWorkflowExecutor extends AbstractWorkflowExecutor {
context.setOperationReason(operationReason); context.setOperationReason(operationReason);
context.setJobTaskStatus(jobTaskStatus); context.setJobTaskStatus(jobTaskStatus);
context.setLogMessage(message); context.setLogMessage(message);
} }
@Override @Override

View File

@ -46,7 +46,7 @@ public class WorkflowExecutorContext {
/** /**
* 客户端返回的结果 * 客户端返回的结果
*/ */
private String result; private String taskResult;
/** /**
* 失败策略 1跳过 2阻塞 * 失败策略 1跳过 2阻塞