feat: 2.4.0
1. 调整目录结构
This commit is contained in:
parent
2e350419a7
commit
1e3ff02605
@ -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 '间隔时长',
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -47,7 +47,7 @@ public class Job implements Serializable {
|
||||
/**
|
||||
* 参数类型 text/json
|
||||
*/
|
||||
private String argsType;
|
||||
private Integer argsType;
|
||||
|
||||
/**
|
||||
* 扩展字段
|
||||
|
@ -79,7 +79,7 @@ public class JobTask implements Serializable {
|
||||
/**
|
||||
* 参数类型 text/json
|
||||
*/
|
||||
private String argsType;
|
||||
private Integer argsType;
|
||||
|
||||
/**
|
||||
* 扩展字段
|
||||
|
@ -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>
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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.*")
|
||||
|
@ -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) {
|
||||
|
@ -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() {
|
||||
// 关闭还未执行的任务
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
@ -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 {
|
||||
|
||||
}
|
@ -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);
|
||||
}
|
@ -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
|
@ -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
|
@ -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;
|
||||
|
@ -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;
|
@ -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
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
@ -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;
|
@ -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;
|
||||
|
@ -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;
|
@ -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
|
@ -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;
|
@ -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());
|
||||
}
|
||||
});
|
||||
|
@ -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;
|
@ -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;
|
@ -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任务扫描
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
||||
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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 lombok.Data;
|
||||
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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 lombok.Data;
|
||||
|
@ -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;
|
@ -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;
|
||||
|
@ -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;
|
@ -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;
|
@ -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
|
@ -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 {
|
||||
// 计算超时时间
|
@ -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;
|
@ -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;
|
||||
|
@ -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;
|
@ -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;
|
@ -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;
|
||||
|
||||
/**
|
@ -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;
|
@ -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;
|
||||
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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
|
||||
|
@ -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 {
|
||||
|
||||
}
|
@ -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()) {
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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")
|
@ -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() {
|
@ -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() {
|
@ -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) {
|
@ -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) {
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
@ -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),
|
@ -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;
|
@ -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;
|
@ -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;
|
||||
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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 {
|
||||
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
@ -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 ;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
/**
|
||||
* 执行器类型 1、Java
|
||||
*/
|
||||
@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;
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
@ -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 {
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
|
||||
}
|
@ -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);
|
||||
}
|
@ -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);
|
||||
}
|
@ -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);
|
||||
|
||||
}
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user