fix: 2.0.2

1. 修复没有配置组时获取场景黑名单NPE问题
2. 修复不同组的ScanActor对象相同问题
This commit is contained in:
byteblogs168 2023-07-18 12:19:45 +08:00
parent 421c71dbbc
commit edfe815d5a
4 changed files with 15 additions and 4 deletions

View File

@ -5,6 +5,8 @@ import com.aizuda.easy.retry.server.akka.ActorGenerator;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.function.Supplier;
/**
* @author www.byteblogs.com
* @date 2023-06-04
@ -13,9 +15,10 @@ import lombok.Getter;
@AllArgsConstructor
@Getter
public enum TaskTypeEnum {
RETRY(1, ActorGenerator.scanGroupActor()),
CALLBACK(2, ActorGenerator.scanCallbackGroupActor());
RETRY(1, ActorGenerator::scanGroupActor),
CALLBACK(2, ActorGenerator::scanCallbackGroupActor);
private final Integer type;
private final ActorRef actorRef;
private final Supplier<ActorRef> actorRef;
}

View File

@ -10,6 +10,7 @@ import org.springframework.util.CollectionUtils;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@ -65,6 +66,10 @@ public class MybatisConfigAccess extends AbstractConfigAccess {
LambdaQueryWrapper<SceneConfig> sceneConfigLambdaQueryWrapper = new LambdaQueryWrapper<SceneConfig>()
.eq(SceneConfig::getSceneName, groupName);
if (Objects.isNull(groupConfig)) {
return Collections.EMPTY_SET;
}
if (StatusEnum.YES.getStatus().equals(groupConfig.getGroupStatus())) {
sceneConfigLambdaQueryWrapper.eq(SceneConfig::getSceneStatus, StatusEnum.NO.getStatus());
}

View File

@ -134,7 +134,7 @@ public class DispatchService implements Lifecycle {
private ActorRef cacheActorRef(String groupName, TaskTypeEnum typeEnum) {
ActorRef scanActorRef = CacheGroupScanActor.get(groupName, typeEnum);
if (Objects.isNull(scanActorRef)) {
scanActorRef = typeEnum.getActorRef();
scanActorRef = typeEnum.getActorRef().get();
// 缓存扫描器actor
CacheGroupScanActor.put(groupName, typeEnum, scanActorRef);
}

View File

@ -40,6 +40,9 @@ public class RetryExecutor<V> {
for (FilterStrategy filterStrategy : filterStrategies) {
if (!filterStrategy.filter(retryContext)) {
log.warn("当前任务不满足执行条件. groupName:[{}] uniqueId:[{}], filter:[{}]",
retryContext.getRetryTask().getGroupName(),
retryContext.getRetryTask().getUniqueId(), filterStrategy.getClass().getName());
return false;
}
}