feat: 2.6.0
1. 调试条件节点
This commit is contained in:
parent
2ad2910162
commit
6bac05cfb3
@ -25,7 +25,7 @@ public enum JobOperationReasonEnum {
|
||||
TASK_EXECUTE_ERROR(7, "任务执行期间发生非预期异常"),
|
||||
MANNER_STOP(8, "手动停止"),
|
||||
WORKFLOW_CONDITION_NODE_EXECUTOR_ERROR(8, "条件节点执行异常"),
|
||||
JOB_TASK_INTERRUPTED(8, "任务中断"),
|
||||
JOB_TASK_INTERRUPTED(9, "任务中断"),
|
||||
;
|
||||
|
||||
private final int reason;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support;
|
||||
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies.BlockStrategyContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies.BlockStrategyContext;
|
||||
|
||||
/**
|
||||
* @author: www.byteblogs.com
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support;
|
||||
|
||||
import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.executor.JobExecutorContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.executor.job.JobExecutorContext;
|
||||
|
||||
/**
|
||||
* @author www.byteblogs.com
|
||||
|
@ -6,9 +6,9 @@ import com.aizuda.easy.retry.server.job.task.dto.*;
|
||||
import com.aizuda.easy.retry.server.job.task.support.generator.batch.JobTaskBatchGeneratorContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.generator.task.JobTaskGenerateContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.callback.ClientCallbackContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.executor.JobExecutorContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.executor.job.JobExecutorContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.stop.TaskStopJobContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.JobLogMessage;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.strategy;
|
||||
package com.aizuda.easy.retry.server.job.task.support.block.job;
|
||||
|
||||
import com.aizuda.easy.retry.common.core.context.SpringContext;
|
||||
import com.aizuda.easy.retry.common.core.enums.JobOperationReasonEnum;
|
@ -1,8 +1,8 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.block.workflow;
|
||||
|
||||
import com.aizuda.easy.retry.server.job.task.support.BlockStrategy;
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies.BlockStrategyContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies.BlockStrategyEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies.BlockStrategyContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies.BlockStrategyEnum;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
@ -1,11 +1,9 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.block.workflow;
|
||||
|
||||
import com.aizuda.easy.retry.common.core.enums.JobOperationReasonEnum;
|
||||
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.WorkflowTaskConverter;
|
||||
import com.aizuda.easy.retry.server.job.task.support.generator.batch.WorkflowBatchGenerator;
|
||||
import com.aizuda.easy.retry.server.job.task.support.generator.batch.WorkflowTaskBatchGeneratorContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies.BlockStrategyEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies.BlockStrategyEnum;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
@ -1,11 +1,15 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.block.workflow;
|
||||
|
||||
import akka.actor.ActorRef;
|
||||
import com.aizuda.easy.retry.common.core.constant.SystemConstants;
|
||||
import com.aizuda.easy.retry.common.core.enums.JobOperationReasonEnum;
|
||||
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
|
||||
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.WorkflowNodeTaskExecuteDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.support.WorkflowTaskConverter;
|
||||
import com.aizuda.easy.retry.server.job.task.support.generator.batch.WorkflowBatchGenerator;
|
||||
import com.aizuda.easy.retry.server.job.task.support.generator.batch.WorkflowTaskBatchGeneratorContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies.BlockStrategyEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies.BlockStrategyEnum;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -20,6 +24,16 @@ public class DiscardWorkflowBlockStrategy extends AbstractWorkflowBlockStrategy
|
||||
private final WorkflowBatchGenerator workflowBatchGenerator;
|
||||
@Override
|
||||
protected void doBlock(final WorkflowBlockStrategyContext workflowBlockStrategyContext) {
|
||||
|
||||
// 重新尝试执行, 重新生成任务批次
|
||||
WorkflowNodeTaskExecuteDTO taskExecuteDTO = new WorkflowNodeTaskExecuteDTO();
|
||||
taskExecuteDTO.setWorkflowTaskBatchId(workflowBlockStrategyContext.getWorkflowTaskBatchId());
|
||||
taskExecuteDTO.setWorkflowId(workflowBlockStrategyContext.getWorkflowId());
|
||||
taskExecuteDTO.setTriggerType(workflowBlockStrategyContext.getTriggerType());
|
||||
taskExecuteDTO.setParentId(SystemConstants.ROOT);
|
||||
ActorRef actorRef = ActorGenerator.workflowTaskExecutorActor();
|
||||
actorRef.tell(taskExecuteDTO, actorRef);
|
||||
|
||||
// 生成状态为取消的工作流批次
|
||||
WorkflowTaskBatchGeneratorContext workflowTaskBatchGeneratorContext = WorkflowTaskConverter.INSTANCE.toWorkflowTaskBatchGeneratorContext(workflowBlockStrategyContext);
|
||||
workflowTaskBatchGeneratorContext.setTaskBatchStatus(JobTaskBatchStatusEnum.CANCEL.getStatus());
|
||||
|
@ -1,37 +1,13 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.block.workflow;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.aizuda.easy.retry.common.core.enums.JobOperationReasonEnum;
|
||||
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
|
||||
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
|
||||
import com.aizuda.easy.retry.server.job.task.support.BlockStrategy;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobTaskStopHandler;
|
||||
import com.aizuda.easy.retry.server.job.task.support.WorkflowTaskConverter;
|
||||
import com.aizuda.easy.retry.server.job.task.support.generator.batch.WorkflowBatchGenerator;
|
||||
import com.aizuda.easy.retry.server.job.task.support.generator.batch.WorkflowTaskBatchGeneratorContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.handler.WorkflowBatchHandler;
|
||||
import com.aizuda.easy.retry.server.job.task.support.stop.JobTaskStopFactory;
|
||||
import com.aizuda.easy.retry.server.job.task.support.stop.TaskStopJobContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies;
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies.BlockStrategyEnum;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobMapper;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskBatchMapper;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.mapper.WorkflowTaskBatchMapper;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTaskBatch;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.WorkflowTaskBatch;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies.BlockStrategyEnum;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum.NOT_COMPLETE;
|
||||
|
||||
/**
|
||||
* @author: xiaowoniu
|
||||
* @date : 2023-12-26
|
||||
|
@ -1,6 +1,6 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.block.workflow;
|
||||
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies.BlockStrategyContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies.BlockStrategyContext;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@ -22,4 +22,15 @@ public class WorkflowBlockStrategyContext extends BlockStrategyContext {
|
||||
* 工作流任务批次id
|
||||
*/
|
||||
private Long workflowTaskBatchId;
|
||||
|
||||
/**
|
||||
* 流程信息
|
||||
*/
|
||||
private String flowInfo;
|
||||
|
||||
|
||||
/**
|
||||
* 触发类似 1、auto 2、manual
|
||||
*/
|
||||
private Integer triggerType;
|
||||
}
|
||||
|
@ -1,8 +1,7 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.block.workflow;
|
||||
|
||||
import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.BlockStrategy;
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies.BlockStrategyEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies.BlockStrategyEnum;
|
||||
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
|
@ -24,8 +24,8 @@ import com.aizuda.easy.retry.server.job.task.support.JobExecutor;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
|
||||
import com.aizuda.easy.retry.server.job.task.support.cache.ResidentTaskCache;
|
||||
import com.aizuda.easy.retry.server.job.task.support.event.JobTaskFailAlarmEvent;
|
||||
import com.aizuda.easy.retry.server.job.task.support.executor.JobExecutorContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.executor.JobExecutorFactory;
|
||||
import com.aizuda.easy.retry.server.job.task.support.executor.job.JobExecutorContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.executor.job.JobExecutorFactory;
|
||||
import com.aizuda.easy.retry.server.job.task.support.timer.JobTimerWheel;
|
||||
import com.aizuda.easy.retry.server.job.task.support.timer.ResidentJobTimerTask;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobMapper;
|
||||
@ -36,7 +36,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.TransactionStatus;
|
||||
@ -112,6 +111,7 @@ public class JobExecutorActor extends AbstractActor {
|
||||
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||
@Override
|
||||
public void afterCompletion(int status) {
|
||||
|
||||
if (Objects.nonNull(taskExecute.getWorkflowNodeId()) && Objects.nonNull(taskExecute.getWorkflowTaskBatchId())) {
|
||||
// 若是工作流则开启下一个任务
|
||||
try {
|
||||
|
@ -5,7 +5,7 @@ import com.aizuda.easy.retry.common.core.context.SpringContext;
|
||||
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobPrePareHandler;
|
||||
import com.aizuda.easy.retry.server.job.task.support.prepare.TerminalJobPrepareHandler;
|
||||
import com.aizuda.easy.retry.server.job.task.support.prepare.job.TerminalJobPrepareHandler;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskBatchMapper;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTaskBatch;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
|
@ -71,6 +71,7 @@ public class WorkflowExecutorActor extends AbstractActor {
|
||||
@Override
|
||||
public Receive createReceive() {
|
||||
return receiveBuilder().match(WorkflowNodeTaskExecuteDTO.class, taskExecute -> {
|
||||
log.info("工作流开始执行. [{}]", JsonUtil.toJsonString(taskExecute));
|
||||
try {
|
||||
doExecutor(taskExecute);
|
||||
} catch (Exception e) {
|
||||
@ -109,10 +110,10 @@ public class WorkflowExecutorActor extends AbstractActor {
|
||||
|
||||
Map<Long, JobTaskBatch> jobTaskBatchMap = jobTaskBatchList.stream().collect(Collectors.toMap(JobTaskBatch::getWorkflowNodeId, i -> i));
|
||||
Map<Long, WorkflowNode> workflowNodeMap = workflowNodes.stream().collect(Collectors.toMap(WorkflowNode::getId, i -> i));
|
||||
JobTaskBatch jobTaskBatch = jobTaskBatchMap.get(taskExecute.getParentId());
|
||||
JobTaskBatch parentJobTaskBatch = jobTaskBatchMap.get(taskExecute.getParentId());
|
||||
|
||||
// 失败策略处理
|
||||
if (Objects.nonNull(jobTaskBatch) && JobTaskBatchStatusEnum.SUCCESS.getStatus() != jobTaskBatch.getTaskBatchStatus()) {
|
||||
if (Objects.nonNull(parentJobTaskBatch) && JobTaskBatchStatusEnum.SUCCESS.getStatus() != parentJobTaskBatch.getTaskBatchStatus()) {
|
||||
// 判断是否继续处理,根据失败策略
|
||||
WorkflowNode workflowNode = workflowNodeMap.get(taskExecute.getParentId());
|
||||
// 失败了阻塞策略
|
||||
@ -128,7 +129,8 @@ public class WorkflowExecutorActor extends AbstractActor {
|
||||
Boolean evaluationResult = null;
|
||||
for (WorkflowNode workflowNode : workflowNodes) {
|
||||
// 批次已经存在就不在重复生成
|
||||
if (Objects.nonNull(jobTaskBatchMap.get(workflowNode.getId()))) {
|
||||
JobTaskBatch jobTaskBatch = jobTaskBatchMap.get(workflowNode.getId());
|
||||
if (Objects.nonNull(jobTaskBatch) && JobTaskBatchStatusEnum.COMPLETED.contains(jobTaskBatch.getTaskBatchStatus())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1,24 +1,14 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.dispatch;
|
||||
|
||||
import akka.actor.AbstractActor;
|
||||
import com.aizuda.easy.retry.common.core.context.SpringContext;
|
||||
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
|
||||
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.WorkflowTaskPrepareDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobPrePareHandler;
|
||||
import com.aizuda.easy.retry.server.job.task.support.WorkflowPrePareHandler;
|
||||
import com.aizuda.easy.retry.server.job.task.support.prepare.TerminalJobPrepareHandler;
|
||||
import com.aizuda.easy.retry.server.job.task.support.prepare.workflow.TerminalWorkflowPrepareHandler;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskBatchMapper;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.mapper.WorkflowTaskBatchMapper;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTaskBatch;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.WorkflowTaskBatch;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
@ -1,15 +1,12 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor;
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor.job;
|
||||
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobExecutor;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
|
||||
import com.aizuda.easy.retry.server.job.task.support.generator.task.JobTaskGenerateContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.generator.task.JobTaskGenerator;
|
||||
import com.aizuda.easy.retry.server.job.task.support.generator.task.JobTaskGeneratorFactory;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobMapper;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor;
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor.job;
|
||||
|
||||
import akka.actor.ActorRef;
|
||||
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
|
@ -1,4 +1,4 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor;
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor.job;
|
||||
|
||||
import akka.actor.ActorRef;
|
||||
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
|
@ -1,4 +1,4 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor;
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor.job;
|
||||
|
||||
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
|
||||
import lombok.Data;
|
@ -1,4 +1,4 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor;
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor.job;
|
||||
|
||||
import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobExecutor;
|
@ -1,4 +1,4 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor;
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor.job;
|
||||
|
||||
import akka.actor.AbstractActor;
|
||||
import akka.actor.ActorRef;
|
@ -1,4 +1,4 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor;
|
||||
package com.aizuda.easy.retry.server.job.task.support.executor.job;
|
||||
|
||||
import akka.actor.ActorRef;
|
||||
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
|
@ -1,12 +1,17 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.generator.batch;
|
||||
|
||||
import akka.actor.ActorRef;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.aizuda.easy.retry.common.core.enums.JobOperationReasonEnum;
|
||||
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
|
||||
import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
|
||||
import com.aizuda.easy.retry.server.common.enums.JobTriggerTypeEnum;
|
||||
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
|
||||
import com.aizuda.easy.retry.server.common.util.DateUtils;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.JobTimerTaskDTO;
|
||||
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.WorkflowNodeTaskExecuteDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
|
||||
import com.aizuda.easy.retry.server.job.task.support.timer.JobTimerTask;
|
||||
import com.aizuda.easy.retry.server.job.task.support.timer.JobTimerWheel;
|
||||
@ -18,9 +23,12 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DuplicateKeyException;
|
||||
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;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@ -47,6 +55,28 @@ public class JobTaskBatchGenerator {
|
||||
if (CollectionUtils.isEmpty(CacheRegisterTable.getServerNodeSet(context.getGroupName(), context.getNamespaceId()))) {
|
||||
jobTaskBatch.setTaskBatchStatus(JobTaskBatchStatusEnum.CANCEL.getStatus());
|
||||
jobTaskBatch.setOperationReason(JobOperationReasonEnum.NOT_CLIENT.getReason());
|
||||
|
||||
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||
@Override
|
||||
public void afterCompletion(int status) {
|
||||
|
||||
if (Objects.nonNull(context.getWorkflowNodeId()) && Objects.nonNull(context.getWorkflowTaskBatchId())) {
|
||||
// 若是工作流则开启下一个任务
|
||||
try {
|
||||
WorkflowNodeTaskExecuteDTO taskExecuteDTO = new WorkflowNodeTaskExecuteDTO();
|
||||
taskExecuteDTO.setWorkflowTaskBatchId(context.getWorkflowTaskBatchId());
|
||||
taskExecuteDTO.setTriggerType(JobTriggerTypeEnum.AUTO.getType());
|
||||
taskExecuteDTO.setParentId(context.getWorkflowNodeId());
|
||||
taskExecuteDTO.setResult(StrUtil.EMPTY);
|
||||
ActorRef actorRef = ActorGenerator.workflowTaskExecutorActor();
|
||||
actorRef.tell(taskExecuteDTO, actorRef);
|
||||
} catch (Exception e) {
|
||||
log.error("任务调度执行失败", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
} else {
|
||||
// 生成一个新的任务
|
||||
jobTaskBatch.setTaskBatchStatus(Optional.ofNullable(context.getTaskBatchStatus()).orElse(JobTaskBatchStatusEnum.WAITING.getStatus()));
|
||||
|
@ -212,4 +212,8 @@ public class WorkflowBatchHandler {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void checkWorkflowExecutor() {
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.prepare;
|
||||
package com.aizuda.easy.retry.server.job.task.support.prepare.job;
|
||||
|
||||
import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobPrePareHandler;
|
@ -1,4 +1,4 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.prepare;
|
||||
package com.aizuda.easy.retry.server.job.task.support.prepare.job;
|
||||
|
||||
import com.aizuda.easy.retry.common.core.enums.JobOperationReasonEnum;
|
||||
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
|
||||
@ -11,8 +11,8 @@ import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobTaskStopHandler;
|
||||
import com.aizuda.easy.retry.server.job.task.support.stop.JobTaskStopFactory;
|
||||
import com.aizuda.easy.retry.server.job.task.support.stop.TaskStopJobContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies;
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies.BlockStrategyEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies.BlockStrategyEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.handler.JobTaskBatchHandler;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
@ -1,4 +1,4 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.prepare;
|
||||
package com.aizuda.easy.retry.server.job.task.support.prepare.job;
|
||||
|
||||
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
|
@ -1,4 +1,4 @@
|
||||
package com.aizuda.easy.retry.server.job.task.support.prepare;
|
||||
package com.aizuda.easy.retry.server.job.task.support.prepare.job;
|
||||
|
||||
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
|
||||
import com.aizuda.easy.retry.server.common.util.DateUtils;
|
@ -4,18 +4,13 @@ import com.aizuda.easy.retry.common.core.enums.JobOperationReasonEnum;
|
||||
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
|
||||
import com.aizuda.easy.retry.common.core.util.JsonUtil;
|
||||
import com.aizuda.easy.retry.server.common.util.DateUtils;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.CompleteJobBatchDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.WorkflowTaskPrepareDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.support.BlockStrategy;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
|
||||
import com.aizuda.easy.retry.server.job.task.support.JobTaskStopHandler;
|
||||
import com.aizuda.easy.retry.server.job.task.support.WorkflowTaskConverter;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.workflow.WorkflowBlockStrategyContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.workflow.WorkflowBlockStrategyFactory;
|
||||
import com.aizuda.easy.retry.server.job.task.support.handler.WorkflowBatchHandler;
|
||||
import com.aizuda.easy.retry.server.job.task.support.stop.JobTaskStopFactory;
|
||||
import com.aizuda.easy.retry.server.job.task.support.stop.TaskStopJobContext;
|
||||
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies.BlockStrategyEnum;
|
||||
import com.aizuda.easy.retry.server.job.task.support.block.job.BlockStrategies.BlockStrategyEnum;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
@ -2,12 +2,8 @@ package com.aizuda.easy.retry.server.job.task.support.prepare.workflow;
|
||||
|
||||
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
|
||||
import com.aizuda.easy.retry.server.common.util.DateUtils;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.JobTimerTaskDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.WorkflowTaskPrepareDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.dto.WorkflowTimerTaskDTO;
|
||||
import com.aizuda.easy.retry.server.job.task.support.prepare.AbstractJobPrePareHandler;
|
||||
import com.aizuda.easy.retry.server.job.task.support.timer.JobTimerTask;
|
||||
import com.aizuda.easy.retry.server.job.task.support.timer.JobTimerWheel;
|
||||
import com.aizuda.easy.retry.server.job.task.support.timer.WorkflowTimerTask;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
@ -35,8 +35,8 @@ public class WorkflowRequestVO {
|
||||
@NotNull(message = "执行超时时间不能为空")
|
||||
private Integer executorTimeout;
|
||||
|
||||
@NotNull(message = "阻塞策略不能为空")
|
||||
private Integer blockStrategy;
|
||||
// @NotNull(message = "阻塞策略不能为空")
|
||||
// private Integer blockStrategy;
|
||||
|
||||
/**
|
||||
* 0、关闭、1、开启
|
||||
|
Loading…
Reference in New Issue
Block a user