feat(1.3.0-beta2): 修复https://gitee.com/aizuda/snail-job/issues/IBHA4U
This commit is contained in:
parent
821e7fb659
commit
04bd145e09
@ -1,12 +1,11 @@
|
||||
package com.aizuda.snailjob.server.retry.task.dto;
|
||||
|
||||
import com.aizuda.snailjob.template.datasource.persistence.po.CreateUpdateDt;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
public class RetryTaskExecutorDTO extends CreateUpdateDt {
|
||||
public class RetryTaskExecutorDTO {
|
||||
|
||||
private Long id;
|
||||
|
||||
@ -40,4 +39,8 @@ public class RetryTaskExecutorDTO extends CreateUpdateDt {
|
||||
|
||||
private String reason;
|
||||
|
||||
private LocalDateTime updateDt;
|
||||
|
||||
private LocalDateTime createDt;
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.aizuda.snailjob.server.retry.task.dto;
|
||||
|
||||
import com.aizuda.snailjob.template.datasource.persistence.po.CreateUpdateDt;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@ -11,7 +10,7 @@ import java.time.LocalDateTime;
|
||||
* @date 2024/12/23
|
||||
*/
|
||||
@Data
|
||||
public class RetryTaskFailAlarmEventDTO extends CreateUpdateDt {
|
||||
public class RetryTaskFailAlarmEventDTO {
|
||||
|
||||
private Long id;
|
||||
|
||||
|
@ -57,6 +57,7 @@ public class FailureActor extends AbstractActor {
|
||||
return receiveBuilder().match(RetryTaskExecutorDTO.class, retryTaskExecutorDTO -> {
|
||||
|
||||
SnailJobLog.LOCAL.debug("FailureActor params:[{}]", retryTaskExecutorDTO);
|
||||
// 这里先这样后面重构统一调整
|
||||
RetryTask retryTask = RetryTaskConverter.INSTANCE.toRetryTask(retryTaskExecutorDTO);
|
||||
try {
|
||||
// 超过最大等级
|
||||
|
@ -2,6 +2,7 @@ package com.aizuda.snailjob.server.retry.task.support.retry;
|
||||
|
||||
import akka.actor.ActorRef;
|
||||
import cn.hutool.core.lang.Pair;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.aizuda.snailjob.client.model.DispatchRetryResultDTO;
|
||||
import com.aizuda.snailjob.common.core.enums.RetryNotifySceneEnum;
|
||||
import com.aizuda.snailjob.common.core.model.Result;
|
||||
@ -18,6 +19,7 @@ import com.aizuda.snailjob.server.retry.task.support.StopStrategy;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.Callable;
|
||||
|
||||
/**
|
||||
@ -98,10 +100,29 @@ public class RetryExecutor<V> {
|
||||
actorRef = ActorGenerator.failureActor();
|
||||
}
|
||||
|
||||
// 获取失败原因
|
||||
String reason = StrUtil.EMPTY;
|
||||
if (retryContext.hasException()) {
|
||||
Exception exception = retryContext.getException();
|
||||
if (Objects.nonNull(exception)) {
|
||||
reason = exception.getCause().getMessage();
|
||||
}
|
||||
|
||||
} else {
|
||||
if (Objects.nonNull(call)) {
|
||||
Result<DispatchRetryResultDTO> result = (Result<DispatchRetryResultDTO>) call;
|
||||
DispatchRetryResultDTO data = result.getData();
|
||||
if (StrUtil.isBlank(result.getMessage()) && Objects.nonNull(data)) {
|
||||
reason = data.getExceptionMsg();
|
||||
} else {
|
||||
reason = result.getMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RetryTaskExecutorDTO retryTaskExecutorDTO =
|
||||
RetryTaskConverter.INSTANCE.toRetryTaskExecutorDTO(
|
||||
retryContext.getRetryTask(),
|
||||
retryContext.hasException() ? retryContext.getException().getCause().getMessage() : ((DispatchRetryResultDTO) ((Result) call).getData()).getExceptionMsg(),
|
||||
retryContext.getRetryTask(), reason,
|
||||
RetryNotifySceneEnum.RETRY_TASK_FAIL_ERROR.getNotifyScene());
|
||||
actorRef.tell(retryTaskExecutorDTO, actorRef);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user