feat:2.4.0

1. 优化客户端执行器
This commit is contained in:
byteblogs168 2023-10-18 23:24:46 +08:00
parent 69e0fe0a48
commit f3a2addfc5
32 changed files with 117 additions and 51 deletions

View File

@ -7,9 +7,12 @@ import com.aizuda.easy.retry.client.job.core.executor.AbstractJobExecutor;
import com.aizuda.easy.retry.client.job.core.executor.AnnotationJobExecutor; import com.aizuda.easy.retry.client.job.core.executor.AnnotationJobExecutor;
import com.aizuda.easy.retry.client.job.core.dto.JobContext; import com.aizuda.easy.retry.client.job.core.dto.JobContext;
import com.aizuda.easy.retry.client.job.core.dto.JobExecutorInfo; import com.aizuda.easy.retry.client.job.core.dto.JobExecutorInfo;
import com.aizuda.easy.retry.client.job.core.executor.JobExecutorFutureCallback;
import com.aizuda.easy.retry.client.model.ExecuteResult;
import com.aizuda.easy.retry.client.model.request.DispatchJobRequest; import com.aizuda.easy.retry.client.model.request.DispatchJobRequest;
import com.aizuda.easy.retry.client.model.StopJobDTO; import com.aizuda.easy.retry.client.model.StopJobDTO;
import com.aizuda.easy.retry.common.core.context.SpringContext; import com.aizuda.easy.retry.common.core.context.SpringContext;
import com.aizuda.easy.retry.common.core.enums.StatusEnum;
import com.aizuda.easy.retry.common.core.model.Result; import com.aizuda.easy.retry.common.core.model.Result;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -33,6 +36,27 @@ public class JobEndPoint {
@PostMapping("/dispatch/v1") @PostMapping("/dispatch/v1")
public Result<Boolean> dispatchJob(@RequestBody @Validated DispatchJobRequest dispatchJob) { public Result<Boolean> dispatchJob(@RequestBody @Validated DispatchJobRequest dispatchJob) {
JobContext jobContext = buildJobContext(dispatchJob);
JobExecutorInfo jobExecutorInfo = JobExecutorInfoCache.get(jobContext.getExecutorInfo());
if (Objects.isNull(jobExecutorInfo)) {
return new Result<>(Boolean.FALSE);
}
// 选择执行器
Object executor = jobExecutorInfo.getExecutor();
IJobExecutor jobExecutor;
if (executor.getClass().isAssignableFrom(IJobExecutor.class)) {
jobExecutor = (AbstractJobExecutor) executor;
} else {
jobExecutor = SpringContext.getBeanByType(AnnotationJobExecutor.class);
}
jobExecutor.jobExecute(jobContext);
return new Result<>(Boolean.TRUE);
}
private static JobContext buildJobContext(DispatchJobRequest dispatchJob) {
JobContext jobContext = new JobContext(); JobContext jobContext = new JobContext();
jobContext.setJobId(dispatchJob.getJobId()); jobContext.setJobId(dispatchJob.getJobId());
jobContext.setTaskId(dispatchJob.getTaskId()); jobContext.setTaskId(dispatchJob.getTaskId());
@ -42,17 +66,8 @@ public class JobEndPoint {
jobContext.setParallelNum(dispatchJob.getParallelNum()); jobContext.setParallelNum(dispatchJob.getParallelNum());
jobContext.setTaskType(dispatchJob.getTaskType()); jobContext.setTaskType(dispatchJob.getTaskType());
jobContext.setExecutorTimeout(dispatchJob.getExecutorTimeout()); jobContext.setExecutorTimeout(dispatchJob.getExecutorTimeout());
jobContext.setArgsStr(dispatchJob.getArgsStr());
JobExecutorInfo jobExecutorInfo = JobExecutorInfoCache.get(jobContext.getExecutorInfo()); return jobContext;
if (jobExecutorInfo.isAnnotation()) {
IJobExecutor iJobExecutor = SpringContext.getBeanByType(AnnotationJobExecutor.class);
iJobExecutor.jobExecute(jobContext);
} else {
AbstractJobExecutor normalJobExecutor = (AbstractJobExecutor) jobExecutorInfo.getExecutor();
normalJobExecutor.jobExecute(jobContext);
}
return new Result<>(Boolean.TRUE);
} }
@PostMapping("/stop/v1") @PostMapping("/stop/v1")

View File

@ -10,5 +10,7 @@ import lombok.Data;
@Data @Data
public class JobArgs { public class JobArgs {
private String argsStr;
private String executorInfo; private String executorInfo;
} }

View File

@ -31,4 +31,6 @@ public class JobContext {
private Integer shardingIndex; private Integer shardingIndex;
private Integer executorTimeout; private Integer executorTimeout;
private String argsStr;
} }

View File

@ -20,6 +20,4 @@ public class JobExecutorInfo {
private Object executor; private Object executor;
private boolean isAnnotation;
} }

View File

@ -5,9 +5,11 @@ import com.aizuda.easy.retry.client.job.core.cache.FutureCache;
import com.aizuda.easy.retry.client.job.core.cache.ThreadPoolCache; import com.aizuda.easy.retry.client.job.core.cache.ThreadPoolCache;
import com.aizuda.easy.retry.client.job.core.dto.JobArgs; import com.aizuda.easy.retry.client.job.core.dto.JobArgs;
import com.aizuda.easy.retry.client.job.core.dto.JobContext; import com.aizuda.easy.retry.client.job.core.dto.JobContext;
import com.aizuda.easy.retry.client.job.core.dto.ShardingJobArgs;
import com.aizuda.easy.retry.client.job.core.timer.StopTaskTimerTask; import com.aizuda.easy.retry.client.job.core.timer.StopTaskTimerTask;
import com.aizuda.easy.retry.client.job.core.timer.TimerManager; import com.aizuda.easy.retry.client.job.core.timer.TimerManager;
import com.aizuda.easy.retry.client.model.ExecuteResult; import com.aizuda.easy.retry.client.model.ExecuteResult;
import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService; import com.google.common.util.concurrent.ListeningExecutorService;
@ -37,11 +39,35 @@ public abstract class AbstractJobExecutor implements IJobExecutor {
TimerManager.add(new StopTaskTimerTask(jobContext.getTaskBatchId()), jobContext.getExecutorTimeout(), TimeUnit.SECONDS); TimerManager.add(new StopTaskTimerTask(jobContext.getTaskBatchId()), jobContext.getExecutorTimeout(), TimeUnit.SECONDS);
// 执行任务 // 执行任务
ListenableFuture<ExecuteResult> submit = decorator.submit(() -> doJobExecute(jobContext)); ListenableFuture<ExecuteResult> submit = decorator.submit(() -> {
JobArgs jobArgs;
if (jobContext.getTaskType() == TaskTypeEnum.SHARDING.getType()) {
jobArgs = buildShardingJobArgs(jobContext);
} else {
jobArgs = buildJobArgs(jobContext);
}
return doJobExecute(jobArgs);
});
FutureCache.addFuture(jobContext.getTaskBatchId(), jobContext.getTaskId(), submit); FutureCache.addFuture(jobContext.getTaskBatchId(), jobContext.getTaskId(), submit);
Futures.addCallback(submit, new JobExecutorFutureCallback(jobContext), decorator); Futures.addCallback(submit, new JobExecutorFutureCallback(jobContext), decorator);
}
private static JobArgs buildJobArgs(JobContext jobContext) {
JobArgs jobArgs = new JobArgs();
jobArgs.setArgsStr(jobContext.getArgsStr());
jobArgs.setExecutorInfo(jobContext.getExecutorInfo());
return jobArgs;
}
private static JobArgs buildShardingJobArgs(JobContext jobContext) {
ShardingJobArgs jobArgs = new ShardingJobArgs();
jobArgs.setArgsStr(jobContext.getArgsStr());
jobArgs.setExecutorInfo(jobContext.getExecutorInfo());
jobArgs.setShardingIndex(jobContext.getShardingIndex());
jobArgs.setShardingTotal(jobContext.getShardingTotal());
return jobArgs;
} }
protected abstract ExecuteResult doJobExecute(JobArgs jobArgs); protected abstract ExecuteResult doJobExecute(JobArgs jobArgs);

View File

@ -43,16 +43,25 @@ public class JobExecutorFutureCallback implements FutureCallback<ExecuteResult>
taskStatus = JobTaskStatusEnum.SUCCESS.getStatus(); taskStatus = JobTaskStatusEnum.SUCCESS.getStatus();
} }
CLIENT.dispatchResult(buildDispatchJobResultRequest(result, taskStatus)); try {
CLIENT.dispatchResult(buildDispatchJobResultRequest(result, taskStatus));
} catch (Exception e) {
log.error("执行结果上报异常.[{}]", jobContext.getTaskId(), e);
}
} }
@Override @Override
public void onFailure(final Throwable t) { public void onFailure(final Throwable t) {
// 上报执行失败 // 上报执行失败
log.error("任务执行失败 jobTask:[{}]", jobContext.getTaskId(), t); log.error("任务执行失败 jobTask:[{}]", jobContext.getTaskId(), t);
CLIENT.dispatchResult( try {
buildDispatchJobResultRequest(ExecuteResult.failure(t.getMessage()), JobTaskStatusEnum.FAIL.getStatus()) CLIENT.dispatchResult(
); buildDispatchJobResultRequest(ExecuteResult.failure(t.getMessage()), JobTaskStatusEnum.FAIL.getStatus())
);
} catch (Exception e) {
log.error("执行结果上报异常.[{}]", jobContext.getTaskId(), e);
}
} }
private DispatchJobResultRequest buildDispatchJobResultRequest(ExecuteResult executeResult, int status) { private DispatchJobResultRequest buildDispatchJobResultRequest(ExecuteResult executeResult, int status) {

View File

@ -4,6 +4,7 @@ import com.aizuda.easy.retry.client.job.core.IJobExecutor;
import com.aizuda.easy.retry.client.job.core.Scanner; import com.aizuda.easy.retry.client.job.core.Scanner;
import com.aizuda.easy.retry.client.job.core.annotation.JobExecutor; import com.aizuda.easy.retry.client.job.core.annotation.JobExecutor;
import com.aizuda.easy.retry.client.job.core.cache.JobExecutorInfoCache; import com.aizuda.easy.retry.client.job.core.cache.JobExecutorInfoCache;
import com.aizuda.easy.retry.client.job.core.dto.JobArgs;
import com.aizuda.easy.retry.client.job.core.dto.JobContext; import com.aizuda.easy.retry.client.job.core.dto.JobContext;
import com.aizuda.easy.retry.client.job.core.dto.JobExecutorInfo; import com.aizuda.easy.retry.client.job.core.dto.JobExecutorInfo;
import com.aizuda.easy.retry.common.core.log.LogUtils; import com.aizuda.easy.retry.common.core.log.LogUtils;
@ -59,7 +60,7 @@ public class JobExecutorScanner implements Scanner, ApplicationContextAware {
// 通过实现接口进行注册 // 通过实现接口进行注册
if (bean.getClass().isAssignableFrom(IJobExecutor.class)) { if (bean.getClass().isAssignableFrom(IJobExecutor.class)) {
if (!JobExecutorInfoCache.isExisted(executorClassName)) { if (!JobExecutorInfoCache.isExisted(executorClassName)) {
retryerInfoList.add(new JobExecutorInfo(executorClassName, ReflectionUtils.findMethod(bean.getClass(), "jobExecute"), bean, false)); retryerInfoList.add(new JobExecutorInfo(executorClassName, ReflectionUtils.findMethod(bean.getClass(), "jobExecute"), bean));
} }
} }
@ -72,8 +73,8 @@ public class JobExecutorScanner implements Scanner, ApplicationContextAware {
JobExecutorInfo jobExecutorInfo = JobExecutorInfo jobExecutorInfo =
new JobExecutorInfo( new JobExecutorInfo(
executorName, executorName,
ReflectionUtils.findMethod(bean.getClass(), jobExecutor.method(), JobContext.class), ReflectionUtils.findMethod(bean.getClass(), jobExecutor.method(), JobArgs.class),
bean, true bean
); );
retryerInfoList.add(jobExecutorInfo); retryerInfoList.add(jobExecutorInfo);
} }
@ -96,7 +97,7 @@ public class JobExecutorScanner implements Scanner, ApplicationContextAware {
new JobExecutorInfo( new JobExecutorInfo(
jobExecutor.name(), jobExecutor.name(),
executeMethod, executeMethod,
bean,true bean
); );
retryerInfoList.add(jobExecutorInfo); retryerInfoList.add(jobExecutorInfo);
} }

View File

@ -36,6 +36,8 @@ public class DispatchJobRequest {
@NotBlank(message = "executorInfo 不能为空") @NotBlank(message = "executorInfo 不能为空")
private String executorInfo; private String executorInfo;
private String argsStr;
private Integer shardingTotal; private Integer shardingTotal;
private Integer shardingIndex; private Integer shardingIndex;

View File

@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.job.task.enums; package com.aizuda.easy.retry.common.core.enums;
import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException; import com.aizuda.easy.retry.common.core.exception.EasyRetryCommonException;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Getter; import lombok.Getter;
@ -26,6 +26,6 @@ public enum TaskTypeEnum {
} }
} }
throw new EasyRetryServerException("未知类型"); throw new EasyRetryCommonException("未知类型");
} }
} }

View File

@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.job.task.support; package com.aizuda.easy.retry.server.job.task.support;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.callback.ClientCallbackContext; import com.aizuda.easy.retry.server.job.task.support.callback.ClientCallbackContext;
/** /**

View File

@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.job.task.support; package com.aizuda.easy.retry.server.job.task.support;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.executor.JobExecutorContext; import com.aizuda.easy.retry.server.job.task.support.executor.JobExecutorContext;
/** /**

View File

@ -62,6 +62,8 @@ public interface JobTaskConverter {
ClientCallbackContext toClientCallbackContext(DispatchJobResultRequest request); ClientCallbackContext toClientCallbackContext(DispatchJobResultRequest request);
ClientCallbackContext toClientCallbackContext(RealJobExecutorDTO request);
DispatchJobRequest toDispatchJobRequest(RealJobExecutorDTO realJobExecutorDTO); DispatchJobRequest toDispatchJobRequest(RealJobExecutorDTO realJobExecutorDTO);
@Mappings({ @Mappings({

View File

@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.job.task.support; package com.aizuda.easy.retry.server.job.task.support;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.stop.TaskStopJobContext; import com.aizuda.easy.retry.server.job.task.support.stop.TaskStopJobContext;
/** /**

View File

@ -4,7 +4,7 @@ import akka.actor.ActorRef;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator; import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.support.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.dto.JobExecutorResultDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.job.task.support.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.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.ClientCallbackHandler; import com.aizuda.easy.retry.server.job.task.support.ClientCallbackHandler;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;

View File

@ -4,7 +4,7 @@ import akka.actor.ActorRef;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator; import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.support.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.dto.JobExecutorResultDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -4,7 +4,7 @@ import akka.actor.ActorRef;
import com.aizuda.easy.retry.server.common.akka.ActorGenerator; import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.job.task.support.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.dto.JobExecutorResultDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -5,8 +5,7 @@ import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.util.ClientInfoUtils; import com.aizuda.easy.retry.server.common.util.ClientInfoUtils;
import com.aizuda.easy.retry.server.job.task.support.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.dto.RealJobExecutorDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -5,8 +5,7 @@ import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.util.ClientInfoUtils; import com.aizuda.easy.retry.server.common.util.ClientInfoUtils;
import com.aizuda.easy.retry.server.job.task.support.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.dto.RealJobExecutorDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.job.task.support.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.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.JobExecutor; import com.aizuda.easy.retry.server.job.task.support.JobExecutor;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;

View File

@ -2,6 +2,7 @@ package com.aizuda.easy.retry.server.job.task.support.executor;
import akka.actor.AbstractActor; import akka.actor.AbstractActor;
import akka.actor.ActorRef; import akka.actor.ActorRef;
import com.aizuda.easy.retry.client.model.ExecuteResult;
import com.aizuda.easy.retry.client.model.request.DispatchJobRequest; import com.aizuda.easy.retry.client.model.request.DispatchJobRequest;
import com.aizuda.easy.retry.common.core.enums.JobTaskStatusEnum; import com.aizuda.easy.retry.common.core.enums.JobTaskStatusEnum;
import com.aizuda.easy.retry.common.core.enums.StatusEnum; import com.aizuda.easy.retry.common.core.enums.StatusEnum;
@ -11,11 +12,14 @@ 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.cache.CacheRegisterTable;
import com.aizuda.easy.retry.server.common.client.RequestBuilder; import com.aizuda.easy.retry.server.common.client.RequestBuilder;
import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo; import com.aizuda.easy.retry.server.common.dto.RegisterNodeInfo;
import com.aizuda.easy.retry.server.job.task.support.ClientCallbackHandler;
import com.aizuda.easy.retry.server.job.task.support.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.client.JobRpcClient;
import com.aizuda.easy.retry.server.job.task.dto.JobExecutorResultDTO; 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.JobLogDTO;
import com.aizuda.easy.retry.server.job.task.dto.RealJobExecutorDTO; import com.aizuda.easy.retry.server.job.task.dto.RealJobExecutorDTO;
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.template.datasource.persistence.mapper.JobTaskMapper; import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import com.github.rholder.retry.Attempt; import com.github.rholder.retry.Attempt;
@ -72,12 +76,17 @@ public class RealJobExecutorActor extends AbstractActor {
if (dispatch.getStatus() == StatusEnum.YES.getStatus() && Objects.equals(dispatch.getData(), if (dispatch.getStatus() == StatusEnum.YES.getStatus() && Objects.equals(dispatch.getData(),
Boolean.TRUE)) { Boolean.TRUE)) {
jobLogDTO.setMessage("任务调度成功"); jobLogDTO.setMessage("任务调度成功");
ActorRef actorRef = ActorGenerator.jobLogActor();
actorRef.tell(jobLogDTO, actorRef);
} else { } else {
jobLogDTO.setMessage(dispatch.getMessage()); // 客户端返回失败则认为任务执行失败
ClientCallbackHandler clientCallback = ClientCallbackFactory.getClientCallback(realJobExecutorDTO.getTaskType());
ClientCallbackContext context = JobTaskConverter.INSTANCE.toClientCallbackContext(realJobExecutorDTO);
context.setTaskStatus(JobTaskStatusEnum.FAIL.getStatus());
context.setExecuteResult(ExecuteResult.failure(null, dispatch.getMessage()));
clientCallback.callback(context);
} }
ActorRef actorRef = ActorGenerator.jobLogActor();
actorRef.tell(jobLogDTO, actorRef);
} catch (Exception e) { } catch (Exception e) {
log.error("调用客户端失败.", e); log.error("调用客户端失败.", e);
Throwable throwable = e; Throwable throwable = e;

View File

@ -5,8 +5,7 @@ import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.util.ClientInfoUtils; import com.aizuda.easy.retry.server.common.util.ClientInfoUtils;
import com.aizuda.easy.retry.server.job.task.support.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.dto.RealJobExecutorDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.Job;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -8,7 +8,7 @@ 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.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.common.util.ClientInfoUtils; import com.aizuda.easy.retry.server.common.util.ClientInfoUtils;
import com.aizuda.easy.retry.server.job.task.support.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.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobMapper; import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobMapper;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper; import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;

View File

@ -8,7 +8,7 @@ import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler; import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler;
import com.aizuda.easy.retry.server.common.util.ClientInfoUtils; import com.aizuda.easy.retry.server.common.util.ClientInfoUtils;
import com.aizuda.easy.retry.server.job.task.support.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.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobMapper; import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobMapper;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper; import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;

View File

@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.job.task.support.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.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import java.util.List; import java.util.List;

View File

@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.job.task.support.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.common.core.enums.TaskTypeEnum;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;

View File

@ -9,7 +9,7 @@ import com.aizuda.easy.retry.server.common.exception.EasyRetryServerException;
import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler; import com.aizuda.easy.retry.server.common.handler.ClientNodeAllocateHandler;
import com.aizuda.easy.retry.server.common.util.ClientInfoUtils; import com.aizuda.easy.retry.server.common.util.ClientInfoUtils;
import com.aizuda.easy.retry.server.job.task.support.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.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper; import com.aizuda.easy.retry.template.datasource.persistence.mapper.JobTaskMapper;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import com.google.common.base.Splitter; import com.google.common.base.Splitter;

View File

@ -5,7 +5,7 @@ import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.util.ClientInfoUtils; import com.aizuda.easy.retry.server.common.util.ClientInfoUtils;
import com.aizuda.easy.retry.server.job.task.support.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.dto.RealStopTaskInstanceDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -5,7 +5,7 @@ import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.util.ClientInfoUtils; import com.aizuda.easy.retry.server.common.util.ClientInfoUtils;
import com.aizuda.easy.retry.server.job.task.support.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.dto.RealStopTaskInstanceDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -1,6 +1,6 @@
package com.aizuda.easy.retry.server.job.task.support.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.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.server.job.task.support.JobTaskStopHandler; import com.aizuda.easy.retry.server.job.task.support.JobTaskStopHandler;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;

View File

@ -5,7 +5,7 @@ import com.aizuda.easy.retry.server.common.akka.ActorGenerator;
import com.aizuda.easy.retry.server.common.util.ClientInfoUtils; import com.aizuda.easy.retry.server.common.util.ClientInfoUtils;
import com.aizuda.easy.retry.server.job.task.support.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.dto.RealStopTaskInstanceDTO;
import com.aizuda.easy.retry.server.job.task.enums.TaskTypeEnum; import com.aizuda.easy.retry.common.core.enums.TaskTypeEnum;
import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask; import com.aizuda.easy.retry.template.datasource.persistence.po.JobTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;

View File

@ -186,6 +186,9 @@ export default {
], ],
// Promise // Promise
loadData: (parameter) => { loadData: (parameter) => {
if (this.queryParam.taskBatchId === null || this.queryParam.taskBatchId === undefined) {
return []
}
return jobTaskList(Object.assign(parameter, this.queryParam)).then((res) => { return jobTaskList(Object.assign(parameter, this.queryParam)).then((res) => {
return res return res
}) })