list = retryTaskAccessProcessor.listAvailableTasks(groupName, lastAt, lastId, retryPullPageSize,
getTaskType());
if (!CollectionUtils.isEmpty(list)) {
- // 更新拉取的最大的创建时间
- putLastAt(scanTaskDTO.getGroupName(), list.get(list.size() - 1).getCreateDt());
+ // 更新拉取的最大的id
+ putLastId(scanTaskDTO.getGroupName(), list.get(list.size() - 1).getId());
for (RetryTask retryTask : list) {
@@ -97,7 +97,7 @@ public abstract class AbstractScanGroup extends AbstractActor {
Thread.currentThread().interrupt();
}
- putLastAt(groupName, defLastAt);
+ putLastId(groupName, 0L);
}
}
@@ -108,9 +108,9 @@ public abstract class AbstractScanGroup extends AbstractActor {
protected abstract Integer getTaskType();
- protected abstract LocalDateTime getLastAt(String groupName);
+ protected abstract Long getLastId(String groupName);
- protected abstract LocalDateTime putLastAt(String groupName, LocalDateTime LocalDateTime);
+ protected abstract void putLastId(String groupName, Long lastId);
private void retryCountIncrement(RetryTask retryTask) {
Integer retryCount = retryTask.getRetryCount();
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanCallbackGroupActor.java b/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanCallbackGroupActor.java
index 71cb18339..563b760bd 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanCallbackGroupActor.java
+++ b/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanCallbackGroupActor.java
@@ -35,11 +35,11 @@ public class ScanCallbackGroupActor extends AbstractScanGroup {
public static final String BEAN_NAME = "ScanCallbackGroupActor";
/**
- * 缓存待拉取数据的起点时间
+ * 缓存待拉取数据的起点id
*
- * LAST_AT_MAP[key] = groupName LAST_AT_MAP[value] = retry_task的 create_at时间
+ * LAST_AT_MAP[key] = groupName LAST_AT_MAP[value] = retry_task的 id
*/
- public static final ConcurrentMap LAST_AT_MAP = new ConcurrentHashMap<>();
+ private static final ConcurrentMap LAST_AT_MAP = new ConcurrentHashMap<>();
@Override
protected RetryContext builderRetryContext(final String groupName, final RetryTask retryTask) {
@@ -73,13 +73,13 @@ public class ScanCallbackGroupActor extends AbstractScanGroup {
}
@Override
- protected LocalDateTime getLastAt(final String groupName) {
+ protected Long getLastId(final String groupName) {
return LAST_AT_MAP.get(groupName);
}
@Override
- protected LocalDateTime putLastAt(final String groupName, final LocalDateTime LocalDateTime) {
- return LAST_AT_MAP.put(groupName, LocalDateTime);
+ protected void putLastId(final String groupName, final Long lastId) {
+ LAST_AT_MAP.put(groupName, lastId);
}
private WaitStrategy getWaitWaitStrategy() {
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanGroupActor.java b/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanGroupActor.java
index 2043ab7bc..7a0d90fc8 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanGroupActor.java
+++ b/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/dispatch/actor/scan/ScanGroupActor.java
@@ -36,11 +36,11 @@ public class ScanGroupActor extends AbstractScanGroup {
public static final String BEAN_NAME = "ScanGroupActor";
/**
- * 缓存待拉取数据的起点时间
+ * 缓存待拉取数据的起点id
*
- * LAST_AT_MAP[key] = groupName LAST_AT_MAP[value] = retry_task的 create_at时间
+ * LAST_AT_MAP[key] = groupName LAST_AT_MAP[value] = retry_task的id
*/
- public static final ConcurrentMap LAST_AT_MAP = new ConcurrentHashMap<>();
+ private static final ConcurrentMap LAST_AT_MAP = new ConcurrentHashMap<>();
@Override
protected RetryContext> builderRetryContext(final String groupName,
@@ -76,15 +76,16 @@ public class ScanGroupActor extends AbstractScanGroup {
}
@Override
- protected LocalDateTime getLastAt(final String groupName) {
+ protected Long getLastId(final String groupName) {
return LAST_AT_MAP.get(groupName);
}
@Override
- protected LocalDateTime putLastAt(final String groupName, final LocalDateTime LocalDateTime) {
- return LAST_AT_MAP.put(groupName, LocalDateTime);
+ protected void putLastId(final String groupName, final Long lastId) {
+ LAST_AT_MAP.put(groupName, lastId);
}
+
private WaitStrategy getWaitWaitStrategy(String groupName, String sceneName) {
SceneConfig sceneConfig = configAccess.getSceneConfigByGroupNameAndSceneName(groupName, sceneName);
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ConfigVersionSyncHandler.java b/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ConfigVersionSyncHandler.java
index 387344b58..d1910c752 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ConfigVersionSyncHandler.java
+++ b/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ConfigVersionSyncHandler.java
@@ -104,7 +104,7 @@ public class ConfigVersionSyncHandler implements Lifecycle, Runnable {
} finally {
try {
// 防止刷的过快,休眠1s
- TimeUnit.MILLISECONDS.sleep(1000);
+ TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
diff --git a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ServerNodeBalance.java b/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ServerNodeBalance.java
index 8bb247a68..47553c31f 100644
--- a/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ServerNodeBalance.java
+++ b/easy-retry-server/src/main/java/com/aizuda/easy/retry/server/support/handler/ServerNodeBalance.java
@@ -3,6 +3,7 @@ package com.aizuda.easy.retry.server.support.handler;
import cn.hutool.core.lang.Opt;
import com.aizuda.easy.retry.common.core.enums.NodeTypeEnum;
import com.aizuda.easy.retry.common.core.log.LogUtils;
+import com.aizuda.easy.retry.server.config.SystemProperties;
import com.aizuda.easy.retry.server.dto.RegisterNodeInfo;
import com.aizuda.easy.retry.server.persistence.mybatis.mapper.ServerNodeMapper;
import com.aizuda.easy.retry.server.persistence.mybatis.po.GroupConfig;
@@ -56,6 +57,8 @@ public class ServerNodeBalance implements Lifecycle, Runnable {
@Autowired
protected ServerNodeMapper serverNodeMapper;
+ @Autowired
+ protected SystemProperties systemProperties;
/**
* 控制rebalance状态
@@ -253,7 +256,7 @@ public class ServerNodeBalance implements Lifecycle, Runnable {
LogUtils.error(log, "check balance error", e);
} finally {
try {
- TimeUnit.SECONDS.sleep(1);
+ TimeUnit.SECONDS.sleep(systemProperties.getLoadBalanceCycleTime());
} catch (InterruptedException e) {
LogUtils.error(log, "check balance interrupt");
Thread.currentThread().interrupt();
diff --git a/pom.xml b/pom.xml
index 0e974fd74..236d24046 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,6 +27,7 @@
5.8.19
3.5.3.1
2.0.0
+ 2.0.0
@@ -81,7 +82,11 @@
mybatis-plus-boot-starter
${mybatis-plus.version}
-
+
+ com.github.rholder
+ guava-retrying
+ ${guava-retrying.version}
+