feat: 2.4.0

1. 调整目录结构
This commit is contained in:
byteblogs168 2023-10-12 18:15:07 +08:00
parent 2e350419a7
commit 1e3ff02605
111 changed files with 952 additions and 382 deletions

View File

@ -220,13 +220,13 @@ CREATE TABLE `job` (
`group_name` varchar(64) NOT NULL COMMENT '组名称',
`job_name` varchar(64) NOT NULL COMMENT '名称',
`args_str` text NOT NULL COMMENT '执行方法参数',
`args_type` varchar(16) NOT NULL DEFAULT '' COMMENT '参数类型 text/json',
`args_type` tinyint(4) NOT NULL DEFAULT '' COMMENT '参数类型 ',
`ext_attrs` text NOT NULL COMMENT '扩展字段',
`next_trigger_at` datetime NOT NULL COMMENT '下次触发时间',
`job_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '重试状态 0、关闭、1、开启',
`task_type` varchar(255) DEFAULT NULL COMMENT '任务类型 1、集群 2、广播 3、切片',
`route_key` varchar(50) DEFAULT NULL COMMENT '执行器路由策略',
`executor_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '执行器类型 1、Java',
`executor_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '执行器类型',
`executor_name` varchar(255) DEFAULT NULL COMMENT '执行器名称',
`trigger_type` tinyint(4) NOT NULL COMMENT '触发类型 1.CRON 表达式 2. 固定时间',
`trigger_interval` varchar(255) NOT NULL COMMENT '间隔时长',

View File

@ -16,5 +16,4 @@ import org.apache.ibatis.annotations.Param;
@Mapper
public interface JobTaskBatchMapper extends BaseMapper<JobTaskBatch> {
int updateJobTaskBatchStatus(@Param("taskBatchId") Long taskBatchId, @Param("taskStatus") Integer taskStatus);
}

View File

@ -47,7 +47,7 @@ public class Job implements Serializable {
/**
* 参数类型 text/json
*/
private String argsType;
private Integer argsType;
/**
* 扩展字段

View File

@ -79,7 +79,7 @@ public class JobTask implements Serializable {
/**
* 参数类型 text/json
*/
private String argsType;
private Integer argsType;
/**
* 扩展字段

View File

@ -13,22 +13,4 @@
<result column="deleted" property="deleted" />
</resultMap>
<update id="updateJobTaskBatchStatus">
update job_task_batch
set task_status = #{taskStatus}
<where>
id = #{taskBatchId}
<if test="taskStatus == 4">
and EXISTS (select id from job_task where task_batch_id = #{taskBatchId} and execute_status = 4)
</if>
<if test="taskStatus == 3">
and NOT EXISTS (select id from job_task where task_batch_id = #{taskBatchId} and execute_status IN(1, 2, 4, 5))
</if>
<if test="taskStatus == 5">
and NOT EXISTS (select id from job_task where task_batch_id = #{taskBatchId} and execute_status IN(1, 2))
</if>
</where>
</update>
</mapper>

View File

@ -135,8 +135,8 @@ public class CacheRegisterTable implements Lifecycle {
registerNodeInfo.setExpireAt(serverNode.getExpireAt());
}
LogUtils.info(log, "Update cache. groupName:[{}] hostId:[{}] hostIp:[{}] expireAt:[{}]", groupName,
serverNode.getHostId(), serverNode.getHostIp(), serverNode.getExpireAt());
// LogUtils.info(log, "Update cache. groupName:[{}] hostId:[{}] hostIp:[{}] expireAt:[{}]", groupName,
// serverNode.getHostId(), serverNode.getHostIp(), serverNode.getExpireAt());
concurrentMap.put(serverNode.getHostId(), registerNodeInfo);
}

View File

@ -8,6 +8,7 @@ import org.springframework.context.annotation.Configuration;
*
* @author: www.byteblogs.com
* @date : 2023-09-19 09:21
* @since : 2.4.0
*/
@Configuration
@ComponentScan("com.aizuda.easy.retry.server.common.*")

View File

@ -114,7 +114,6 @@ public class SegmentIdGenerator implements IdGenerator, Lifecycle {
}
private void updateCacheFromDb() {
LogUtils.info(log, "update cache from db");
StopWatch sw = new Slf4JStopWatch();
try {
List<SequenceAlloc> sequenceAllocs = sequenceAllocMapper
@ -189,7 +188,6 @@ public class SegmentIdGenerator implements IdGenerator, Lifecycle {
}
public void updateSegmentFromDb(String key, Segment segment) {
StopWatch sw = new Slf4JStopWatch();
SegmentBuffer buffer = segment.getBuffer();
SequenceAlloc sequenceAlloc;
if (!buffer.isInitOk()) {
@ -231,7 +229,6 @@ public class SegmentIdGenerator implements IdGenerator, Lifecycle {
segment.getValue().set(value);
segment.setMax(sequenceAlloc.getMaxId());
segment.setStep(buffer.getStep());
sw.stop("updateSegmentFromDb", key + " " + segment);
}
public String getIdFromSegmentBuffer(final SegmentBuffer buffer) {

View File

@ -1,28 +0,0 @@
package com.aizuda.easy.retry.server.job;
import com.aizuda.easy.retry.server.common.Lifecycle;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @author www.byteblogs.com
* @date 2023-09-29 23:29:44
* @since 2.4.0
*/
@Component
@Slf4j
public class EasyRetryJobTaskStarter implements Lifecycle {
@Override
public void start() {
// 检查是否还有未执行的任务如果有则直接失败
log.info("easy-retry-job-task starting...");
log.info("easy-retry-job-task completed");
}
@Override
public void close() {
// 关闭还未执行的任务
}
}

View File

@ -1,11 +0,0 @@
package com.aizuda.easy.retry.server.job.task;
import com.aizuda.easy.retry.server.job.task.strategy.BlockStrategies.BlockStrategyContext;
/**
* @author: www.byteblogs.com
* @date : 2023-09-25 17:53
*/
public interface BlockStrategy {
void block(BlockStrategyContext context);
}

View File

@ -1,16 +1,15 @@
package com.aizuda.easy.retry.server.job.task.config;
package com.aizuda.easy.retry.server.job.task;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* web访问模块
*
* @author: www.byteblogs.com
* @date : 2023-09-19 09:21
* @author www.byteblogs.com
* @date 2023-09-29 23:29:44
* @since 2.4.0
*/
@Configuration
@ComponentScan("com.aizuda.easy.retry.server.job.task.*")
public class EasyRetryServerRetryJobAutoConfiguration {
public class EasyRetryJobTaskStarter {
}

View File

@ -0,0 +1,11 @@
package com.aizuda.easy.retry.server.job.task.support;
import com.aizuda.easy.retry.server.job.task.support.strategy.BlockStrategies.BlockStrategyContext;
/**
* @author: www.byteblogs.com
* @date : 2023-09-25 17:53
*/
public interface BlockStrategy {
void block(BlockStrategyContext context);
}

View File

@ -1,6 +1,7 @@
package com.aizuda.easy.retry.server.job.task.handler.callback;
package com.aizuda.easy.retry.server.job.task.support;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.callback.ClientCallbackContext;
/**
* @author www.byteblogs.com

View File

@ -1,6 +1,7 @@
package com.aizuda.easy.retry.server.job.task.handler.executor;
package com.aizuda.easy.retry.server.job.task.support;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.executor.JobExecutorContext;
/**
* @author www.byteblogs.com

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.handler.prepare;
package com.aizuda.easy.retry.server.job.task.support;
import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;

View File

@ -1,14 +1,14 @@
package com.aizuda.easy.retry.server.job.task;
package com.aizuda.easy.retry.server.job.task.support;
import com.aizuda.easy.retry.client.model.request.DispatchJobRequest;
import com.aizuda.easy.retry.client.model.request.DispatchJobResultRequest;
import com.aizuda.easy.retry.server.job.task.dto.*;
import com.aizuda.easy.retry.server.job.task.generator.batch.JobTaskBatchGeneratorContext;
import com.aizuda.easy.retry.server.job.task.generator.task.JobTaskGenerateContext;
import com.aizuda.easy.retry.server.job.task.handler.callback.ClientCallbackContext;
import com.aizuda.easy.retry.server.job.task.handler.executor.JobExecutorContext;
import com.aizuda.easy.retry.server.job.task.handler.stop.TaskStopJobContext;
import com.aizuda.easy.retry.server.job.task.strategy.BlockStrategies;
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.stop.TaskStopJobContext;
import com.aizuda.easy.retry.server.job.task.support.strategy.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;

View File

@ -1,6 +1,7 @@
package com.aizuda.easy.retry.server.job.task.handler.stop;
package com.aizuda.easy.retry.server.job.task.support;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.stop.TaskStopJobContext;
/**
* @author www.byteblogs.com

View File

@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.job.task;
package com.aizuda.easy.retry.server.job.task.support;
import com.aizuda.easy.retry.server.job.task.strategy.WaitStrategies;
import com.aizuda.easy.retry.server.job.task.support.strategy.WaitStrategies;
import java.time.LocalDateTime;

View File

@ -1,5 +1,6 @@
package com.aizuda.easy.retry.server.job.task.handler.callback;
package com.aizuda.easy.retry.server.job.task.support.callback;
import com.aizuda.easy.retry.server.job.task.support.ClientCallbackHandler;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.transaction.annotation.Transactional;

View File

@ -1,15 +1,13 @@
package com.aizuda.easy.retry.server.job.task.handler.callback;
package com.aizuda.easy.retry.server.job.task.support.callback;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.JobExecutorResultDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.Collections;
/**
* @author: www.byteblogs.com
* @date : 2023-10-07 10:24

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.handler.callback;
package com.aizuda.easy.retry.server.job.task.support.callback;
import com.aizuda.easy.retry.client.model.ExecuteResult;
import lombok.Data;

View File

@ -1,6 +1,7 @@
package com.aizuda.easy.retry.server.job.task.handler.callback;
package com.aizuda.easy.retry.server.job.task.support.callback;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.ClientCallbackHandler;
import java.util.concurrent.ConcurrentHashMap;

View File

@ -1,8 +1,8 @@
package com.aizuda.easy.retry.server.job.task.handler.callback;
package com.aizuda.easy.retry.server.job.task.support.callback;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.JobExecutorResultDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,15 +1,13 @@
package com.aizuda.easy.retry.server.job.task.handler.callback;
package com.aizuda.easy.retry.server.job.task.support.callback;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.JobExecutorResultDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import java.util.Collections;
/**
* @author: www.byteblogs.com
* @date : 2023-10-07 10:24

View File

@ -1,12 +1,12 @@
package com.aizuda.easy.retry.server.job.task.dispatch;
package com.aizuda.easy.retry.server.job.task.support.dispatch;
import akka.actor.AbstractActor;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.dto.TaskExecuteDTO;
import com.aizuda.easy.retry.server.job.task.handler.executor.JobExecutor;
import com.aizuda.easy.retry.server.job.task.handler.executor.JobExecutorContext;
import com.aizuda.easy.retry.server.job.task.handler.executor.JobExecutorFactory;
import com.aizuda.easy.retry.server.job.task.support.JobExecutor;
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.template.datasource.persistence.mapper.JobMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,31 +1,18 @@
package com.aizuda.easy.retry.server.job.task.dispatch;
package com.aizuda.easy.retry.server.job.task.support.dispatch;
import akka.actor.AbstractActor;
import akka.actor.ActorRef;
import cn.hutool.core.lang.Assert;
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.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.cache.CacheGroupScanActor;
import com.aizuda.easy.retry.server.common.dto.ScanTask;
import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.WaitStrategy;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.JobExecutorResultDTO;
import com.aizuda.easy.retry.server.job.task.dto.JobLogDTO;
import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;
import com.aizuda.easy.retry.server.job.task.handler.helper.JobTaskBatchHelper;
import com.aizuda.easy.retry.server.job.task.strategy.WaitStrategies.WaitStrategyContext;
import com.aizuda.easy.retry.server.job.task.strategy.WaitStrategies.WaitStrategyEnum;
import com.aizuda.easy.retry.server.job.task.support.handler.JobTaskBatchHandler;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskBatchMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTaskBatch;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
@ -35,7 +22,6 @@ import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionTemplate;
import java.time.LocalDateTime;
import java.util.Objects;
/**
@ -53,9 +39,7 @@ public class JobExecutorResultActor extends AbstractActor {
@Autowired
private TransactionTemplate transactionTemplate;
@Autowired
private JobTaskBatchHelper jobTaskBatchHelper;
@Autowired
private JobTaskBatchMapper jobTaskBatchMapper;
private JobTaskBatchHandler jobTaskBatchHandler;
@Override
public Receive createReceive() {
@ -76,7 +60,7 @@ public class JobExecutorResultActor extends AbstractActor {
()-> new EasyRetryServerException("更新任务实例失败"));
// 更新批次上的状态
jobTaskBatchHelper.complete(result.getTaskBatchId());
jobTaskBatchHandler.complete(result.getTaskBatchId());
}
});

View File

@ -1,10 +1,10 @@
package com.aizuda.easy.retry.server.job.task.dispatch;
package com.aizuda.easy.retry.server.job.task.support.dispatch;
import akka.actor.AbstractActor;
import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.JobLogDTO;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobLogMessageMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobLogMessage;

View File

@ -1,11 +1,11 @@
package com.aizuda.easy.retry.server.job.task.dispatch;
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.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;
import com.aizuda.easy.retry.server.job.task.handler.prepare.JobPrePareHandler;
import com.aizuda.easy.retry.server.job.task.handler.prepare.TerminalJobPrepareHandler;
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.template.datasource.persistence.mapper.JobTaskBatchMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTaskBatch;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.dispatch;
package com.aizuda.easy.retry.server.job.task.support.dispatch;
import akka.actor.AbstractActor;
import akka.actor.ActorRef;
@ -7,12 +7,11 @@ import com.aizuda.easy.retry.common.core.enums.StatusEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.cache.CacheConsumerGroup;
import com.aizuda.easy.retry.server.common.dto.PartitionTask;
import com.aizuda.easy.retry.server.common.dto.ScanTask;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.common.util.PartitionTaskUtils;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.WaitStrategy;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.WaitStrategy;
import com.aizuda.easy.retry.server.job.task.dto.JobPartitionTask;
import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobMapper;
@ -24,18 +23,11 @@ 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;
import org.springframework.util.CollectionUtils;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.Consumer;
import java.util.function.Function;
import static com.aizuda.easy.retry.server.job.task.strategy.WaitStrategies.*;
import static com.aizuda.easy.retry.server.job.task.support.strategy.WaitStrategies.*;
/**
* JOB任务扫描

View File

@ -1,9 +1,10 @@
package com.aizuda.easy.retry.server.job.task.handler.executor;
package com.aizuda.easy.retry.server.job.task.support.executor;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.generator.task.JobTaskGenerateContext;
import com.aizuda.easy.retry.server.job.task.generator.task.JobTaskGenerator;
import com.aizuda.easy.retry.server.job.task.generator.task.JobTaskGeneratorFactory;
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;

View File

@ -1,8 +1,8 @@
package com.aizuda.easy.retry.server.job.task.handler.executor;
package com.aizuda.easy.retry.server.job.task.support.executor;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.RealJobExecutorDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;

View File

@ -1,8 +1,8 @@
package com.aizuda.easy.retry.server.job.task.handler.executor;
package com.aizuda.easy.retry.server.job.task.support.executor;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.RealJobExecutorDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.handler.executor;
package com.aizuda.easy.retry.server.job.task.support.executor;
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;

View File

@ -1,6 +1,7 @@
package com.aizuda.easy.retry.server.job.task.handler.executor;
package com.aizuda.easy.retry.server.job.task.support.executor;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.JobExecutor;
import java.util.concurrent.ConcurrentHashMap;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.handler.executor;
package com.aizuda.easy.retry.server.job.task.support.executor;
import akka.actor.AbstractActor;
import akka.actor.ActorRef;
@ -11,7 +11,7 @@ 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.client.RequestBuilder;
import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.client.JobRpcClient;
import com.aizuda.easy.retry.server.job.task.dto.JobExecutorResultDTO;
import com.aizuda.easy.retry.server.job.task.dto.JobLogDTO;

View File

@ -1,8 +1,8 @@
package com.aizuda.easy.retry.server.job.task.handler.executor;
package com.aizuda.easy.retry.server.job.task.support.executor;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.RealJobExecutorDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.generator.batch;
package com.aizuda.easy.retry.server.job.task.support.generator.batch;
import cn.hutool.core.lang.Assert;
import com.aizuda.easy.retry.common.core.enums.JobOperationReasonEnum;
@ -6,8 +6,8 @@ import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
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.handler.timer.JobTimerTask;
import com.aizuda.easy.retry.server.job.task.handler.timer.JobTimerWheelHandler;
import com.aizuda.easy.retry.server.job.task.support.timer.JobTimerTask;
import com.aizuda.easy.retry.server.job.task.support.timer.JobTimerWheelHandler;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskBatchMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTaskBatch;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.generator.task;
package com.aizuda.easy.retry.server.job.task.support.generator.task;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import org.springframework.beans.factory.InitializingBean;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.generator.task;
package com.aizuda.easy.retry.server.job.task.support.generator.task;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
@ -6,7 +6,7 @@ import com.aizuda.easy.retry.common.core.enums.JobTaskStatusEnum;
import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobMapper;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.generator.task;
package com.aizuda.easy.retry.server.job.task.support.generator.task;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
@ -6,7 +6,7 @@ import com.aizuda.easy.retry.common.core.enums.JobTaskStatusEnum;
import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobMapper;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.generator.task;
package com.aizuda.easy.retry.server.job.task.support.generator.task;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.generator.task;
package com.aizuda.easy.retry.server.job.task.support.generator.task;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.generator.task;
package com.aizuda.easy.retry.server.job.task.support.generator.task;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
@ -7,7 +7,7 @@ import com.aizuda.easy.retry.server.common.cache.CacheRegisterTable;
import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobMapper;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.handler.helper;
package com.aizuda.easy.retry.server.job.task.support.handler;
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
import com.aizuda.easy.retry.common.core.enums.JobTaskStatusEnum;
@ -17,7 +17,7 @@ import java.util.List;
* @date : 2023-10-10 16:50
*/
@Component
public class JobTaskBatchHelper {
public class JobTaskBatchHandler {
@Autowired
private JobTaskMapper jobTaskMapper;

View File

@ -1,6 +1,7 @@
package com.aizuda.easy.retry.server.job.task.handler.prepare;
package com.aizuda.easy.retry.server.job.task.support.prepare;
import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;
import com.aizuda.easy.retry.server.job.task.support.JobPrePareHandler;
/**
* @author www.byteblogs.com

View File

@ -1,21 +1,16 @@
package com.aizuda.easy.retry.server.job.task.handler.prepare;
package com.aizuda.easy.retry.server.job.task.support.prepare;
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
import com.aizuda.easy.retry.server.job.task.BlockStrategy;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
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.dto.JobTaskPrepareDTO;
import com.aizuda.easy.retry.server.job.task.handler.helper.JobTaskBatchHelper;
import com.aizuda.easy.retry.server.job.task.strategy.BlockStrategies;
import com.aizuda.easy.retry.server.job.task.strategy.BlockStrategies.BlockStrategyEnum;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskBatchMapper;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.handler.JobTaskBatchHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.Duration;
import java.time.ZoneId;
/**
@ -30,7 +25,7 @@ import java.time.ZoneId;
public class RunningJobPrepareHandler extends AbstractJobPrePareHandler {
@Autowired
private JobTaskBatchHelper jobTaskBatchHelper;
private JobTaskBatchHandler jobTaskBatchHandler;
@Override
public boolean matches(Integer status) {
@ -43,7 +38,7 @@ public class RunningJobPrepareHandler extends AbstractJobPrePareHandler {
// 若存在所有的任务都是完成但是批次上的状态为运行中则是并发导致的未把批次状态变成为终态此处做一次兜底处理
int blockStrategy = prepare.getBlockStrategy();
if (jobTaskBatchHelper.complete(prepare.getTaskBatchId())) {
if (jobTaskBatchHandler.complete(prepare.getTaskBatchId())) {
blockStrategy = BlockStrategyEnum.CONCURRENCY.getBlockStrategy();
} else {
// 计算超时时间

View File

@ -1,9 +1,9 @@
package com.aizuda.easy.retry.server.job.task.handler.prepare;
package com.aizuda.easy.retry.server.job.task.support.prepare;
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.JobTaskPrepareDTO;
import com.aizuda.easy.retry.server.job.task.generator.batch.JobTaskBatchGenerator;
import com.aizuda.easy.retry.server.job.task.support.generator.batch.JobTaskBatchGenerator;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.Ordered;

View File

@ -1,10 +1,10 @@
package com.aizuda.easy.retry.server.job.task.handler.prepare;
package com.aizuda.easy.retry.server.job.task.support.prepare;
import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
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.handler.timer.JobTimerWheelHandler;
import com.aizuda.easy.retry.server.job.task.handler.timer.JobTimerTask;
import com.aizuda.easy.retry.server.job.task.support.timer.JobTimerWheelHandler;
import com.aizuda.easy.retry.server.job.task.support.timer.JobTimerTask;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.handler.request;
package com.aizuda.easy.retry.server.job.task.support.request;
import cn.hutool.core.net.url.UrlQuery;
import com.aizuda.easy.retry.client.model.request.DispatchJobResultRequest;
@ -8,10 +8,10 @@ import com.aizuda.easy.retry.common.core.model.EasyRetryRequest;
import com.aizuda.easy.retry.common.core.model.NettyResult;
import com.aizuda.easy.retry.common.core.util.JsonUtil;
import com.aizuda.easy.retry.server.common.handler.PostHttpRequestHandler;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.handler.callback.ClientCallbackContext;
import com.aizuda.easy.retry.server.job.task.handler.callback.ClientCallbackFactory;
import com.aizuda.easy.retry.server.job.task.handler.callback.ClientCallbackHandler;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.callback.ClientCallbackContext;
import com.aizuda.easy.retry.server.job.task.support.callback.ClientCallbackFactory;
import com.aizuda.easy.retry.server.job.task.support.ClientCallbackHandler;
import io.netty.handler.codec.http.HttpHeaders;
import io.netty.handler.codec.http.HttpMethod;
import lombok.extern.slf4j.Slf4j;

View File

@ -1,10 +1,11 @@
package com.aizuda.easy.retry.server.job.task.handler.stop;
package com.aizuda.easy.retry.server.job.task.support.stop;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.common.core.enums.JobTaskStatusEnum;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.JobExecutorResultDTO;
import com.aizuda.easy.retry.server.job.task.support.JobTaskStopHandler;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

View File

@ -1,15 +1,12 @@
package com.aizuda.easy.retry.server.job.task.handler.stop;
package com.aizuda.easy.retry.server.job.task.support.stop;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.RealStopTaskInstanceDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**

View File

@ -1,19 +1,12 @@
package com.aizuda.easy.retry.server.job.task.handler.stop;
package com.aizuda.easy.retry.server.job.task.support.stop;
import akka.actor.ActorRef;
import cn.hutool.core.lang.Assert;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.RealStopTaskInstanceDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;

View File

@ -1,6 +1,7 @@
package com.aizuda.easy.retry.server.job.task.handler.stop;
package com.aizuda.easy.retry.server.job.task.support.stop;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.JobTaskStopHandler;
import java.util.concurrent.ConcurrentHashMap;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.handler.stop;
package com.aizuda.easy.retry.server.job.task.support.stop;
import akka.actor.AbstractActor;
import com.aizuda.easy.retry.client.model.StopJobDTO;

View File

@ -1,8 +1,8 @@
package com.aizuda.easy.retry.server.job.task.handler.stop;
package com.aizuda.easy.retry.server.job.task.support.stop;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.support.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.dto.RealStopTaskInstanceDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.handler.stop;
package com.aizuda.easy.retry.server.job.task.support.stop;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import lombok.Data;

View File

@ -1,14 +1,14 @@
package com.aizuda.easy.retry.server.job.task.strategy;
package com.aizuda.easy.retry.server.job.task.support.strategy;
import com.aizuda.easy.retry.common.core.context.SpringContext;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.job.task.BlockStrategy;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.generator.batch.JobTaskBatchGenerator;
import com.aizuda.easy.retry.server.job.task.generator.batch.JobTaskBatchGeneratorContext;
import com.aizuda.easy.retry.server.job.task.handler.stop.JobTaskStopHandler;
import com.aizuda.easy.retry.server.job.task.handler.stop.JobTaskStopFactory;
import com.aizuda.easy.retry.server.job.task.handler.stop.TaskStopJobContext;
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.generator.batch.JobTaskBatchGenerator;
import com.aizuda.easy.retry.server.job.task.support.generator.batch.JobTaskBatchGeneratorContext;
import com.aizuda.easy.retry.server.job.task.support.stop.JobTaskStopFactory;
import com.aizuda.easy.retry.server.job.task.support.JobTaskStopHandler;
import com.aizuda.easy.retry.server.job.task.support.stop.TaskStopJobContext;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;

View File

@ -1,14 +1,8 @@
package com.aizuda.easy.retry.server.job.task.strategy;
package com.aizuda.easy.retry.server.job.task.support.strategy;
import com.aizuda.easy.retry.common.core.context.SpringContext;
import com.aizuda.easy.retry.common.core.util.CronExpression;
import com.aizuda.easy.retry.server.common.config.SystemProperties;
import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.job.task.WaitStrategy;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import com.aizuda.easy.retry.template.datasource.persistence.po.SceneConfig;
import com.aizuda.easy.retry.server.job.task.support.WaitStrategy;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.handler.timer;
package com.aizuda.easy.retry.server.job.task.support.timer;
import akka.actor.ActorRef;
import cn.hutool.core.lang.Assert;
@ -8,13 +8,8 @@ import com.aizuda.easy.retry.common.core.enums.JobTaskBatchStatusEnum;
import com.aizuda.easy.retry.common.core.enums.StatusEnum;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.job.task.JobTaskConverter;
import com.aizuda.easy.retry.server.job.task.WaitStrategy;
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.TaskExecuteDTO;
import com.aizuda.easy.retry.server.job.task.strategy.WaitStrategies.WaitStrategyContext;
import com.aizuda.easy.retry.server.job.task.strategy.WaitStrategies.WaitStrategyEnum;
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.po.Job;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.job.task.handler.timer;
package com.aizuda.easy.retry.server.job.task.support.timer;
import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.common.core.log.LogUtils;

View File

@ -1,2 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.aizuda.easy.retry.server.job.task.config.EasyRetryServerRetryJobAutoConfiguration
com.aizuda.easy.retry.server.job.task.EasyRetryJobTaskStarter

View File

@ -1,16 +1,15 @@
package com.aizuda.easy.retry.server.retry.task.config;
package com.aizuda.easy.retry.server.retry.task;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* web访问模块
*
* @author: www.byteblogs.com
* @date : 2023-09-19 09:21
* @date : 2023-10-12 08:54
* @since : 2.4.0
*/
@Configuration
@ComponentScan("com.aizuda.easy.retry.server.retry.task.*")
public class EasyRetryServerRetryTaskAutoConfiguration {
public class EasyRetryRetryTaskStarter {
}

View File

@ -9,12 +9,12 @@ import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.config.SystemProperties;
import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.CallbackTimerTask;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.RetryTimerContext;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.RetryTimerTask;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.TimerWheelHandler;
import com.aizuda.easy.retry.server.retry.task.support.timer.CallbackTimerTask;
import com.aizuda.easy.retry.server.retry.task.support.timer.RetryTimerContext;
import com.aizuda.easy.retry.server.retry.task.support.timer.RetryTimerTask;
import com.aizuda.easy.retry.server.retry.task.support.timer.TimerWheelHandler;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.log.RetryTaskLogDTO;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskActuatorSceneEnum;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskExecutorSceneEnum;
import com.aizuda.easy.retry.server.retry.task.support.handler.CallbackRetryTaskHandler;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
@ -77,11 +77,11 @@ public class FailureActor extends AbstractActor {
if (TaskTypeEnum.CALLBACK.getType().equals(retryTask.getTaskType())) {
maxRetryCount = systemProperties.getCallback().getMaxCount();
timerTask = new CallbackTimerTask();
timerContext.setScene(TaskActuatorSceneEnum.AUTO_CALLBACK);
timerContext.setScene(TaskExecutorSceneEnum.AUTO_CALLBACK);
} else {
maxRetryCount = sceneConfig.getMaxRetryCount();
timerTask = new RetryTimerTask(timerContext);
timerContext.setScene(TaskActuatorSceneEnum.AUTO_RETRY);
timerContext.setScene(TaskExecutorSceneEnum.AUTO_RETRY);
}
if (maxRetryCount <= retryTask.getRetryCount()) {

View File

@ -7,9 +7,9 @@ import com.aizuda.easy.retry.server.common.config.SystemProperties;
import com.aizuda.easy.retry.server.retry.task.support.IdempotentStrategy;
import com.aizuda.easy.retry.server.common.dto.ScanTask;
import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.TimerWheelHandler;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskActuator;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskActuatorSceneEnum;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskExecutor;
import com.aizuda.easy.retry.server.retry.task.support.timer.TimerWheelHandler;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskExecutorSceneEnum;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -43,7 +43,7 @@ public abstract class AbstractScanGroup extends AbstractActor {
@Autowired
protected ClientNodeAllocateHandler clientNodeAllocateHandler;
@Autowired
protected List<TaskActuator> taskActuators;
protected List<TaskExecutor> taskExecutors;
@Override
public Receive createReceive() {
@ -81,9 +81,9 @@ public abstract class AbstractScanGroup extends AbstractActor {
continue;
}
for (TaskActuator taskActuator : taskActuators) {
if (taskActuatorScene().getScene() == taskActuator.getTaskType().getScene()) {
taskActuator.actuator(retryTask);
for (TaskExecutor taskExecutor : taskExecutors) {
if (taskActuatorScene().getScene() == taskExecutor.getTaskType().getScene()) {
taskExecutor.actuator(retryTask);
}
}
}
@ -100,7 +100,7 @@ public abstract class AbstractScanGroup extends AbstractActor {
}
protected abstract TaskActuatorSceneEnum taskActuatorScene();
protected abstract TaskExecutorSceneEnum taskActuatorScene();
protected abstract Long getLastId(String groupName);

View File

@ -1,19 +1,9 @@
package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.scan;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.common.core.model.Result;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
import com.aizuda.easy.retry.server.retry.task.support.context.CallbackRetryContext;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskActuatorSceneEnum;
import com.aizuda.easy.retry.server.retry.task.support.retry.RetryBuilder;
import com.aizuda.easy.retry.server.retry.task.support.retry.RetryExecutor;
import com.aizuda.easy.retry.server.retry.task.support.strategy.FilterStrategies;
import com.aizuda.easy.retry.server.retry.task.support.strategy.StopStrategies;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskExecutorSceneEnum;
import com.aizuda.easy.retry.server.retry.task.support.strategy.WaitStrategies;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
@ -42,8 +32,8 @@ public class ScanCallbackTaskActor extends AbstractScanGroup {
private static final ConcurrentMap<String, Long> LAST_AT_MAP = new ConcurrentHashMap<>();
@Override
protected TaskActuatorSceneEnum taskActuatorScene() {
return TaskActuatorSceneEnum.AUTO_CALLBACK;
protected TaskExecutorSceneEnum taskActuatorScene() {
return TaskExecutorSceneEnum.AUTO_CALLBACK;
}
@Override

View File

@ -1,21 +1,7 @@
package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.scan;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.client.model.DispatchRetryResultDTO;
import com.aizuda.easy.retry.common.core.model.Result;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
import com.aizuda.easy.retry.server.retry.task.support.context.MaxAttemptsPersistenceRetryContext;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskActuatorSceneEnum;
import com.aizuda.easy.retry.server.retry.task.support.retry.RetryBuilder;
import com.aizuda.easy.retry.server.retry.task.support.retry.RetryExecutor;
import com.aizuda.easy.retry.server.retry.task.support.strategy.FilterStrategies;
import com.aizuda.easy.retry.server.retry.task.support.strategy.StopStrategies;
import com.aizuda.easy.retry.server.retry.task.support.strategy.WaitStrategies;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import com.aizuda.easy.retry.template.datasource.persistence.po.SceneConfig;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskExecutorSceneEnum;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
@ -42,8 +28,8 @@ public class ScanRetryTaskActor extends AbstractScanGroup {
private static final ConcurrentMap<String, Long> LAST_AT_MAP = new ConcurrentHashMap<>();
@Override
protected TaskActuatorSceneEnum taskActuatorScene() {
return TaskActuatorSceneEnum.AUTO_RETRY;
protected TaskExecutorSceneEnum taskActuatorScene() {
return TaskExecutorSceneEnum.AUTO_RETRY;
}
@Override

View File

@ -6,18 +6,14 @@ import com.aizuda.easy.retry.server.common.config.SystemProperties;
import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler;
import com.aizuda.easy.retry.server.retry.task.support.IdempotentStrategy;
import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.actor.TimerWheelHandler;
import com.aizuda.easy.retry.server.retry.task.support.retry.RetryExecutor;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import io.netty.util.Timeout;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import java.util.Objects;
/**
*
*
@ -26,7 +22,7 @@ import java.util.Objects;
* @since 2.4.0
*/
@Slf4j
public abstract class AbstractTaskActuator implements TaskActuator, InitializingBean {
public abstract class AbstractTaskExecutor implements TaskExecutor, InitializingBean {
@Autowired
@Qualifier("bitSetIdempotentStrategyHandler")

View File

@ -3,7 +3,6 @@ package com.aizuda.easy.retry.server.retry.task.support.dispatch.task;
import akka.actor.ActorRef;
import com.aizuda.easy.retry.common.core.model.Result;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
import com.aizuda.easy.retry.server.retry.task.support.context.CallbackRetryContext;
@ -23,7 +22,7 @@ import org.springframework.stereotype.Component;
* @since 2.4.0
*/
@Component
public class CallbackTaskActuator extends AbstractTaskActuator {
public class CallbackTaskExecutor extends AbstractTaskExecutor {
@Override
protected RetryContext builderRetryContext(final String groupName, final RetryTask retryTask) {
@ -52,8 +51,8 @@ public class CallbackTaskActuator extends AbstractTaskActuator {
}
@Override
public TaskActuatorSceneEnum getTaskType() {
return TaskActuatorSceneEnum.AUTO_CALLBACK;
public TaskExecutorSceneEnum getTaskType() {
return TaskExecutorSceneEnum.AUTO_CALLBACK;
}
private WaitStrategy getWaitWaitStrategy() {

View File

@ -25,7 +25,7 @@ import org.springframework.stereotype.Component;
* @since 2.4.0
*/
@Component
public class ManualCallbackTaskActuator extends AbstractTaskActuator {
public class ManualCallbackTaskExecutor extends AbstractTaskExecutor {
@Override
protected RetryContext builderRetryContext(final String groupName, final RetryTask retryTask) {
@ -61,8 +61,8 @@ public class ManualCallbackTaskActuator extends AbstractTaskActuator {
}
@Override
public TaskActuatorSceneEnum getTaskType() {
return TaskActuatorSceneEnum.MANUAL_CALLBACK;
public TaskExecutorSceneEnum getTaskType() {
return TaskExecutorSceneEnum.MANUAL_CALLBACK;
}
private WaitStrategy getWaitWaitStrategy() {

View File

@ -27,7 +27,7 @@ import org.springframework.stereotype.Component;
* @since 2.4.0
*/
@Component
public class ManualRetryTaskActuator extends AbstractTaskActuator {
public class ManualRetryTaskExecutor extends AbstractTaskExecutor {
@Override
protected RetryContext<Result<DispatchRetryResultDTO>> builderRetryContext(final String groupName,
@ -56,8 +56,8 @@ public class ManualRetryTaskActuator extends AbstractTaskActuator {
}
@Override
public TaskActuatorSceneEnum getTaskType() {
return TaskActuatorSceneEnum.MANUAL_RETRY;
public TaskExecutorSceneEnum getTaskType() {
return TaskExecutorSceneEnum.MANUAL_RETRY;
}
private WaitStrategy getWaitWaitStrategy(String groupName, String sceneName) {

View File

@ -4,7 +4,6 @@ import akka.actor.ActorRef;
import com.aizuda.easy.retry.client.model.DispatchRetryResultDTO;
import com.aizuda.easy.retry.common.core.model.Result;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.retry.task.support.RetryContext;
import com.aizuda.easy.retry.server.retry.task.support.WaitStrategy;
import com.aizuda.easy.retry.server.retry.task.support.context.MaxAttemptsPersistenceRetryContext;
@ -25,7 +24,7 @@ import org.springframework.stereotype.Component;
* @since 2.4.0
*/
@Component
public class RetryTaskActuator extends AbstractTaskActuator {
public class RetryTaskExecutor extends AbstractTaskExecutor {
@Override
protected RetryContext<Result<DispatchRetryResultDTO>> builderRetryContext(final String groupName,
@ -56,8 +55,8 @@ public class RetryTaskActuator extends AbstractTaskActuator {
}
@Override
public TaskActuatorSceneEnum getTaskType() {
return TaskActuatorSceneEnum.AUTO_RETRY;
public TaskExecutorSceneEnum getTaskType() {
return TaskExecutorSceneEnum.AUTO_RETRY;
}
private WaitStrategy getWaitWaitStrategy(String groupName, String sceneName) {

View File

@ -1,7 +1,5 @@
package com.aizuda.easy.retry.server.retry.task.support.dispatch.task;
import com.aizuda.easy.retry.template.datasource.access.Access;
import java.util.HashMap;
import java.util.Map;
@ -12,13 +10,13 @@ import java.util.Map;
*/
public class TaskActuatorFactory {
private static final Map<TaskActuatorSceneEnum, TaskActuator> REGISTER_TASK_ACTUATOR = new HashMap<>();
private static final Map<TaskExecutorSceneEnum, TaskExecutor> REGISTER_TASK_ACTUATOR = new HashMap<>();
protected static void register(TaskActuatorSceneEnum scene,TaskActuator taskActuator) {
REGISTER_TASK_ACTUATOR.put(scene, taskActuator);
protected static void register(TaskExecutorSceneEnum scene, TaskExecutor taskExecutor) {
REGISTER_TASK_ACTUATOR.put(scene, taskExecutor);
}
public static TaskActuator getTaskActuator(TaskActuatorSceneEnum scene) {
public static TaskExecutor getTaskActuator(TaskExecutorSceneEnum scene) {
return REGISTER_TASK_ACTUATOR.get(scene);
}

View File

@ -1,6 +1,5 @@
package com.aizuda.easy.retry.server.retry.task.support.dispatch.task;
import com.aizuda.easy.retry.server.common.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
/**
@ -8,9 +7,9 @@ import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
* @date 2023-09-23 08:01:38
* @since 2.4.0
*/
public interface TaskActuator {
public interface TaskExecutor {
TaskActuatorSceneEnum getTaskType();
TaskExecutorSceneEnum getTaskType();
void actuator(RetryTask retryTask);
}

View File

@ -11,7 +11,7 @@ import lombok.Getter;
*/
@AllArgsConstructor
@Getter
public enum TaskActuatorSceneEnum {
public enum TaskExecutorSceneEnum {
AUTO_RETRY(1, TaskTypeEnum.RETRY),
MANUAL_RETRY(2, TaskTypeEnum.RETRY),
AUTO_CALLBACK(3, TaskTypeEnum.CALLBACK),

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor;
package com.aizuda.easy.retry.server.retry.task.support.timer;
import io.netty.util.Timeout;
import io.netty.util.TimerTask;

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor;
package com.aizuda.easy.retry.server.retry.task.support.timer;
import io.netty.util.Timeout;
import io.netty.util.TimerTask;

View File

@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor;
package com.aizuda.easy.retry.server.retry.task.support.timer;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskActuatorSceneEnum;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskExecutorSceneEnum;
import lombok.Data;
/**
@ -15,6 +15,6 @@ public class RetryTimerContext {
private String uniqueId;
private TaskActuatorSceneEnum scene;
private TaskExecutorSceneEnum scene;
}

View File

@ -1,23 +1,18 @@
package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor;
package com.aizuda.easy.retry.server.retry.task.support.timer;
import com.aizuda.easy.retry.common.core.context.SpringContext;
import com.aizuda.easy.retry.common.core.enums.RetryStatusEnum;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskActuator;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskExecutor;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskActuatorFactory;
import com.aizuda.easy.retry.server.retry.task.support.dispatch.task.TaskActuatorSceneEnum;
import com.aizuda.easy.retry.server.retry.task.support.retry.RetryExecutor;
import com.aizuda.easy.retry.template.datasource.access.AccessTemplate;
import com.aizuda.easy.retry.template.datasource.access.TaskAccess;
import com.aizuda.easy.retry.template.datasource.persistence.po.RetryTask;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.netty.util.Timeout;
import io.netty.util.TimerTask;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.LocalDateTime;
import java.util.List;
/**
* @author: www.byteblogs.com
@ -45,7 +40,7 @@ public class RetryTimerTask extends AbstractTimerTask {
.eq(RetryTask::getGroupName, context.getGroupName())
.eq(RetryTask::getUniqueId, context.getUniqueId())
.eq(RetryTask::getRetryStatus, RetryStatusEnum.RUNNING.getStatus()));
TaskActuator taskActuator = TaskActuatorFactory.getTaskActuator(context.getScene());
taskActuator.actuator(retryTask);
TaskExecutor taskExecutor = TaskActuatorFactory.getTaskActuator(context.getScene());
taskExecutor.actuator(retryTask);
}
}

View File

@ -1,4 +1,4 @@
package com.aizuda.easy.retry.server.retry.task.support.dispatch.actor;
package com.aizuda.easy.retry.server.retry.task.support.timer;
import cn.hutool.core.util.StrUtil;
import com.aizuda.easy.retry.common.core.log.LogUtils;

View File

@ -1,2 +1,2 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.aizuda.easy.retry.server.retry.task.config.EasyRetryServerRetryTaskAutoConfiguration
com.aizuda.easy.retry.server.retry.task.EasyRetryRetryTaskStarter

View File

@ -58,7 +58,7 @@ public class DispatchService implements Lifecycle {
}
Set<Integer> currentConsumerBuckets = getConsumerBucket();
LogUtils.info(log, "当前节点分配的桶:[{}]", currentConsumerBuckets);
// LogUtils.info(log, "当前节点分配的桶:[{}]", currentConsumerBuckets);
if (!CollectionUtils.isEmpty(currentConsumerBuckets)) {
ConsumerBucket scanTaskDTO = new ConsumerBucket();
scanTaskDTO.setBuckets(currentConsumerBuckets);

View File

@ -1,16 +1,15 @@
package com.aizuda.easy.retry.server.web.config;
package com.aizuda.easy.retry.server.web;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* web访问模块
*
* @author: www.byteblogs.com
* @date : 2023-09-19 09:21
* @date : 2023-10-12 09:01
* @since : 2.4.0
*/
@Configuration
@ComponentScan("com.aizuda.easy.retry.server.web.*")
public class EasyRetryServerWebAutoConfiguration {
public class EasyRetryWebStarter {
}

View File

@ -0,0 +1,43 @@
package com.aizuda.easy.retry.server.web.controller;
import com.aizuda.easy.retry.server.web.annotation.LoginRequired;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.JobBatchQueryVO;
import com.aizuda.easy.retry.server.web.model.request.JobQueryVO;
import com.aizuda.easy.retry.server.web.model.response.JobBatchResponseVO;
import com.aizuda.easy.retry.server.web.model.response.JobResponseVO;
import com.aizuda.easy.retry.server.web.service.JobBatchService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author: www.byteblogs.com
* @date : 2023-10-12 09:52
* @since 2.4.0
*/
@RestController
@RequestMapping("/job/batch")
public class JobBatchController {
@Autowired
private JobBatchService jobBatchService;
@GetMapping("/list")
@LoginRequired
public PageResult<List<JobBatchResponseVO>> getJobBatchPage(JobBatchQueryVO jobQueryVO) {
return jobBatchService.getJobBatchPage(jobQueryVO);
}
@GetMapping("{id}")
@LoginRequired
public JobBatchResponseVO getJobBatchDetail(@PathVariable("id") Long id) {
return jobBatchService.getJobBatchDetail(id);
}
}

View File

@ -5,10 +5,15 @@ import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.JobQueryVO;
import com.aizuda.easy.retry.server.web.model.request.JobRequestVO;
import com.aizuda.easy.retry.server.web.model.response.JobResponseVO;
import com.aizuda.easy.retry.server.web.model.response.SceneConfigResponseVO;
import com.aizuda.easy.retry.server.web.service.JobService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@ -32,19 +37,19 @@ public class JobController {
@GetMapping("{id}")
@LoginRequired
public PageResult<List<JobResponseVO>> getJobDetail(@PathVariable("id") Long id) {
public JobResponseVO getJobDetail(@PathVariable("id") Long id) {
return jobService.getJobDetail(id);
}
@PostMapping
@LoginRequired
public PageResult<List<JobResponseVO>> saveJob(@RequestBody JobRequestVO jobRequestVO) {
public Boolean saveJob(@RequestBody JobRequestVO jobRequestVO) {
return jobService.saveJob(jobRequestVO);
}
@PutMapping
@LoginRequired
public PageResult<List<JobResponseVO>> updateJob(@RequestBody JobRequestVO jobRequestVO) {
public Boolean updateJob(@RequestBody JobRequestVO jobRequestVO) {
return jobService.updateJob(jobRequestVO);
}

View File

@ -0,0 +1,33 @@
package com.aizuda.easy.retry.server.web.controller;
import com.aizuda.easy.retry.server.web.annotation.LoginRequired;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.JobLogQueryVO;
import com.aizuda.easy.retry.server.web.model.response.JobLogResponseVO;
import com.aizuda.easy.retry.server.web.service.JobLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author: www.byteblogs.com
* @date : 2023-10-12 09:56
* @since 2.4.0
*/
@RestController
@RequestMapping("/job/log")
public class JobLogController {
@Autowired
private JobLogService jobLogService;
@GetMapping("/list")
@LoginRequired
public PageResult<List<JobLogResponseVO>> getJobLogPage(JobLogQueryVO jobQueryVO) {
return jobLogService.getJobLogPage(jobQueryVO);
}
}

View File

@ -0,0 +1,33 @@
package com.aizuda.easy.retry.server.web.controller;
import com.aizuda.easy.retry.server.web.annotation.LoginRequired;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.JobTaskQueryVO;
import com.aizuda.easy.retry.server.web.model.response.JobTaskResponseVO;
import com.aizuda.easy.retry.server.web.service.JobTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author: www.byteblogs.com
* @date : 2023-10-12 09:55
* @since 2.4.0
*/
@RestController
@RequestMapping("/job/task")
public class JobTaskController {
@Autowired
private JobTaskService jobTaskService;
@GetMapping("/list")
@LoginRequired
public PageResult<List<JobTaskResponseVO>> getJobTaskPage(JobTaskQueryVO jobTaskQueryVO) {
return jobTaskService.getJobTaskPage(jobTaskQueryVO);
}
}

View File

@ -0,0 +1,16 @@
package com.aizuda.easy.retry.server.web.model.request;
import com.aizuda.easy.retry.server.web.model.base.BaseQueryVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author www.byteblogs.com
* @date 2023-10-11 22:28:07
* @since 2.4.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class JobBatchQueryVO extends BaseQueryVO {
private Long jobId ;
}

View File

@ -0,0 +1,17 @@
package com.aizuda.easy.retry.server.web.model.request;
import com.aizuda.easy.retry.server.web.model.base.BaseQueryVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author www.byteblogs.com
* @date 2023-10-11 22:28:07
* @since 2.4.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class JobLogQueryVO extends BaseQueryVO {
private Long jobId;
private Long taskBatchId;
}

View File

@ -1,11 +1,17 @@
package com.aizuda.easy.retry.server.web.model.request;
import com.aizuda.easy.retry.server.web.model.base.BaseQueryVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author www.byteblogs.com
* @date 2023-10-11 22:28:07
* @since 2.4.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class JobQueryVO extends BaseQueryVO {
private String groupName;
private String jobName;
}

View File

@ -2,6 +2,10 @@ package com.aizuda.easy.retry.server.web.model.request;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
/**
* @author www.byteblogs.com
* @date 2023-10-11 22:37:55
@ -9,4 +13,102 @@ import lombok.Data;
*/
@Data
public class JobRequestVO {
private Long id;
/**
* 组名称
*/
@NotBlank(message = "groupName 不能为空")
@Pattern(regexp = "^[A-Za-z0-9_]{1,64}$", message = "仅支持长度为1~64字符且类型为数字、字母和下划线")
private String groupName;
/**
* 名称
*/
@NotBlank(message = "jobName 不能为空")
private String jobName;
/**
* 执行方法参数
*/
private String argsStr;
/**
* 参数类型 text/json
*/
@NotNull(message = "argsType 不能为空")
private Integer argsType;
/**
* 执行器路由策略
*/
@NotNull(message = "routeKey 不能为空")
private String routeKey;
/**
* 执行器类型 1Java
*/
@NotNull(message = "executorType 不能为空")
private Integer executorType;
/**
* 执行器名称
*/
@NotBlank(message = "executorName 不能为空")
private String executorName;
/**
* 触发类型 1.CRON 表达式 2. 固定时间
*/
@NotNull(message = "triggerType 不能为空")
private Integer triggerType;
/**
* 间隔时长
*/
@NotNull(message = "triggerInterval 不能为空")
private String triggerInterval;
/**
* 阻塞策略 1丢弃 2覆盖 3并行
*/
@NotNull(message = "blockStrategy 不能为空")
private Integer blockStrategy;
/**
* 任务执行超时时间单位秒
*/
@NotNull(message = "executorTimeout 不能为空")
private Integer executorTimeout;
/**
* 最大重试次数
*/
@NotNull(message = "maxRetryTimes 不能为空")
private Integer maxRetryTimes;
/**
* 重试间隔(s)
*/
@NotNull(message = "retryInterval 不能为空")
private Integer retryInterval;
/**
* 任务类型
*/
@NotNull(message = "taskType 不能为空")
private Integer taskType;
/**
* 并行数
*/
@NotNull(message = "parallelNum 不能为空")
private Integer parallelNum;
/**
* 描述
*/
private String description;
}

View File

@ -0,0 +1,17 @@
package com.aizuda.easy.retry.server.web.model.request;
import com.aizuda.easy.retry.server.web.model.base.BaseQueryVO;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @author www.byteblogs.com
* @date 2023-10-11 22:28:07
* @since 2.4.0
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class JobTaskQueryVO extends BaseQueryVO {
private Long jobId;
private Long taskBatchId;
}

View File

@ -0,0 +1,13 @@
package com.aizuda.easy.retry.server.web.model.response;
import lombok.Data;
/**
* @author: www.byteblogs.com
* @date : 2023-10-12 10:18
* @since : 2.4.0
*/
@Data
public class JobBatchResponseVO {
}

View File

@ -0,0 +1,52 @@
package com.aizuda.easy.retry.server.web.model.response;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @author: www.byteblogs.com
* @date : 2023-10-12 11:22
* @since : 2.4.0
*/
@Data
public class JobLogResponseVO {
private Long id;
/**
* 组名称
*/
private String groupName;
/**
* 任务信息id
*/
private Long jobId;
/**
* 任务实例id
*/
private Long taskBatchId;
/**
* 调度任务id
*/
private Long taskId;
/**
* 创建时间
*/
private LocalDateTime createDt;
/**
* 客户端信息
*/
private String clientAddress;
/**
* 调度信息
*/
private String message;
}

View File

@ -0,0 +1,83 @@
package com.aizuda.easy.retry.server.web.model.response;
import lombok.Data;
import java.time.LocalDateTime;
/**
* @author: www.byteblogs.com
* @date : 2023-10-12 10:18
* @since : 2.4.0
*/
@Data
public class JobTaskResponseVO {
private Long id;
/**
* 组名称
*/
private String groupName;
/**
* 任务信息id
*/
private Long jobId;
/**
* 调度任务id
*/
private Long taskBatchId;
/**
* 父执行器id
*/
private Long parentId;
/**
* 执行的状态 0失败 1成功
*/
private Integer executeStatus;
/**
* 重试次数
*/
private Integer retryCount;
/**
* 执行结果
*/
private String resultMessage;
/**
* 客户端ID
*/
private String clientId;
/**
* 执行方法参数
*/
private String argsStr;
/**
* 参数类型 text/json
*/
private String argsType;
/**
* 扩展字段
*/
private String extAttrs;
/**
* 创建时间
*/
private LocalDateTime createDt;
/**
* 修改时间
*/
private LocalDateTime updateDt;
}

View File

@ -0,0 +1,19 @@
package com.aizuda.easy.retry.server.web.service;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.JobBatchQueryVO;
import com.aizuda.easy.retry.server.web.model.response.JobBatchResponseVO;
import java.util.List;
/**
* @author: www.byteblogs.com
* @date : 2023-10-12 09:54
* @since 2.4.0
*/
public interface JobBatchService {
PageResult<List<JobBatchResponseVO>> getJobBatchPage(JobBatchQueryVO jobQueryVO);
JobBatchResponseVO getJobBatchDetail(Long id);
}

View File

@ -0,0 +1,17 @@
package com.aizuda.easy.retry.server.web.service;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.JobLogQueryVO;
import com.aizuda.easy.retry.server.web.model.response.JobLogResponseVO;
import java.util.List;
/**
* @author: www.byteblogs.com
* @date : 2023-10-12 09:54
* @since 2.4.0
*/
public interface JobLogService {
PageResult<List<JobLogResponseVO>> getJobLogPage(JobLogQueryVO jobQueryVO);
}

View File

@ -15,10 +15,10 @@ import java.util.List;
public interface JobService {
PageResult<List<JobResponseVO>> getJobPage(JobQueryVO jobQueryVO);
PageResult<List<JobResponseVO>> getJobDetail(Long id);
JobResponseVO getJobDetail(Long id);
PageResult<List<JobResponseVO>> saveJob(JobRequestVO jobRequestVO);
boolean saveJob(JobRequestVO jobRequestVO);
PageResult<List<JobResponseVO>> updateJob(JobRequestVO jobRequestVO);
boolean updateJob(JobRequestVO jobRequestVO);
}

View File

@ -0,0 +1,17 @@
package com.aizuda.easy.retry.server.web.service;
import com.aizuda.easy.retry.server.web.model.base.PageResult;
import com.aizuda.easy.retry.server.web.model.request.JobTaskQueryVO;
import com.aizuda.easy.retry.server.web.model.response.JobTaskResponseVO;
import java.util.List;
/**
* @author: www.byteblogs.com
* @date : 2023-10-12 09:54
* @since 2.4.0
*/
public interface JobTaskService {
PageResult<List<JobTaskResponseVO>> getJobTaskPage(JobTaskQueryVO jobTaskQueryVO);
}

Some files were not shown because too many files have changed in this diff Show More