diff --git a/example/pom.xml b/example/pom.xml
index 95d1d4d1..de13010a 100644
--- a/example/pom.xml
+++ b/example/pom.xml
@@ -64,8 +64,7 @@
org.awaitility
awaitility
- 2.0.0
- test
+ 4.1.1
com.squareup.okhttp3
diff --git a/example/src/test/java/com/example/ExistsTransactionalRetryServiceTest.java b/example/src/test/java/com/example/ExistsTransactionalRetryServiceTest.java
index 1bdc59b6..a45067d7 100644
--- a/example/src/test/java/com/example/ExistsTransactionalRetryServiceTest.java
+++ b/example/src/test/java/com/example/ExistsTransactionalRetryServiceTest.java
@@ -39,7 +39,7 @@ public class ExistsTransactionalRetryServiceTest {
Mockito.when(remoteService.call())
.thenReturn(new Result(0, "1"))
.thenReturn(new Result(0, "2"))
- .thenReturn(new Result(1, "3"))
+ .thenReturn(new Result(0, "3"))
.thenReturn(new Result(0, "4"))
.thenReturn(new Result(0, "5"))
;
@@ -89,7 +89,7 @@ public class ExistsTransactionalRetryServiceTest {
.thenReturn(new Result(0, "5"))
;
try {
- for (int i = 0; i < 100; i++) {
+ for (int i = 0; i < 400; i++) {
threadPoolExecutor.execute(() -> testExistsTransactionalRetryService.testSimpleInsert(UUID.randomUUID().toString()));
}
} catch (Exception e) {
diff --git a/frontend/src/views/config/GroupList.vue b/frontend/src/views/config/GroupList.vue
index e618b68e..0e4589b2 100644
--- a/frontend/src/views/config/GroupList.vue
+++ b/frontend/src/views/config/GroupList.vue
@@ -7,7 +7,7 @@
-
+
diff --git a/frontend/src/views/config/basicConfigForm/SceneList.vue b/frontend/src/views/config/basicConfigForm/SceneList.vue
index 07d9c53a..42ab1f51 100644
--- a/frontend/src/views/config/basicConfigForm/SceneList.vue
+++ b/frontend/src/views/config/basicConfigForm/SceneList.vue
@@ -6,7 +6,7 @@
-
+
diff --git a/frontend/src/views/task/RetryDeadLetterList.vue b/frontend/src/views/task/RetryDeadLetterList.vue
index 6c094e9f..b42ef0a9 100644
--- a/frontend/src/views/task/RetryDeadLetterList.vue
+++ b/frontend/src/views/task/RetryDeadLetterList.vue
@@ -12,7 +12,7 @@
-
+
{{ item.sceneName }}
@@ -20,12 +20,12 @@
-
+
-
+
diff --git a/frontend/src/views/task/RetryLogList.vue b/frontend/src/views/task/RetryLogList.vue
index 97e82a7f..a1392a72 100644
--- a/frontend/src/views/task/RetryLogList.vue
+++ b/frontend/src/views/task/RetryLogList.vue
@@ -5,14 +5,14 @@
- handleChange(value)">
+ handleChange(value)" allowClear>
{{ item }}
-
+
{{ item.sceneName }}
@@ -20,12 +20,12 @@
-
+
-
+
diff --git a/frontend/src/views/task/RetryTaskList.vue b/frontend/src/views/task/RetryTaskList.vue
index 7cc1e10c..6a784dab 100644
--- a/frontend/src/views/task/RetryTaskList.vue
+++ b/frontend/src/views/task/RetryTaskList.vue
@@ -12,20 +12,27 @@
-
+
{{ item.sceneName }}
+
+
+
+ {{ value }}
+
+
+
-
+
-
+
diff --git a/frontend/src/views/user/UserList.vue b/frontend/src/views/user/UserList.vue
index b4c2aa04..3d3b7a9c 100644
--- a/frontend/src/views/user/UserList.vue
+++ b/frontend/src/views/user/UserList.vue
@@ -6,7 +6,7 @@
-
+
diff --git a/x-retry-client-core/src/main/java/com/x/retry/client/core/client/RetryEndPoint.java b/x-retry-client-core/src/main/java/com/x/retry/client/core/client/RetryEndPoint.java
index 40e1d69d..a87a4c7b 100644
--- a/x-retry-client-core/src/main/java/com/x/retry/client/core/client/RetryEndPoint.java
+++ b/x-retry-client-core/src/main/java/com/x/retry/client/core/client/RetryEndPoint.java
@@ -12,6 +12,7 @@ import com.x.retry.client.core.strategy.RetryStrategy;
import com.x.retry.client.model.DispatchRetryDTO;
import com.x.retry.client.model.DispatchRetryResultDTO;
import com.x.retry.common.core.enums.RetryResultStatusEnum;
+import com.x.retry.common.core.log.LogUtils;
import com.x.retry.common.core.model.Result;
import com.x.retry.common.core.util.JsonUtil;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/x-retry-client-core/src/main/java/com/x/retry/client/core/intercepter/HeaderAspect.java b/x-retry-client-core/src/main/java/com/x/retry/client/core/intercepter/HeaderAspect.java
index 586ed1e0..937f4d57 100644
--- a/x-retry-client-core/src/main/java/com/x/retry/client/core/intercepter/HeaderAspect.java
+++ b/x-retry-client-core/src/main/java/com/x/retry/client/core/intercepter/HeaderAspect.java
@@ -69,6 +69,12 @@ public class HeaderAspect {
HttpServletResponse response = attributes.getResponse();
response.addHeader(SystemConstants.X_RETRY_STATUS_CODE_KEY, RetrySiteSnapshot.getRetryStatusCode());
+ // 服务端重试的在com.x.retry.client.core.client.RetryEndPoint 中进行清除threadLocal
+ if (Objects.nonNull(RetrySiteSnapshot.getStage()) && RetrySiteSnapshot.EnumStage.REMOTE.getStage() == RetrySiteSnapshot.getStage()) {
+ return;
+ }
+
+ // 这里清除是为了,非服务端直接触发的节点,需要清除 threadLocal里面的标记
RetrySiteSnapshot.removeRetryHeader();
RetrySiteSnapshot.removeRetryStatusCode();
RetrySiteSnapshot.removeEntryMethodTime();
diff --git a/x-retry-client-core/src/main/java/com/x/retry/client/core/intercepter/RetrySiteSnapshot.java b/x-retry-client-core/src/main/java/com/x/retry/client/core/intercepter/RetrySiteSnapshot.java
index 1c1ee7a7..837ad8fb 100644
--- a/x-retry-client-core/src/main/java/com/x/retry/client/core/intercepter/RetrySiteSnapshot.java
+++ b/x-retry-client-core/src/main/java/com/x/retry/client/core/intercepter/RetrySiteSnapshot.java
@@ -135,6 +135,9 @@ public class RetrySiteSnapshot {
RETRY_CLASS_METHOD_ENTRANCE.remove();
RETRY_STAGE.remove();
+ removeEntryMethodTime();
+ removeRetryHeader();
+ removeRetryStatusCode();
}
/**
diff --git a/x-retry-server/src/main/java/com/x/retry/server/persistence/support/access/retry/MybatisRetryTaskAccess.java b/x-retry-server/src/main/java/com/x/retry/server/persistence/support/access/retry/MybatisRetryTaskAccess.java
index 7e5469e7..e6e19288 100644
--- a/x-retry-server/src/main/java/com/x/retry/server/persistence/support/access/retry/MybatisRetryTaskAccess.java
+++ b/x-retry-server/src/main/java/com/x/retry/server/persistence/support/access/retry/MybatisRetryTaskAccess.java
@@ -35,7 +35,8 @@ public class MybatisRetryTaskAccess extends AbstractRetryTaskAccess {
return retryTaskMapper.selectPage(new PageDTO<>(0, pageSize),
new LambdaQueryWrapper()
.eq(RetryTask::getRetryStatus, RetryStatusEnum.RUNNING.getLevel())
- .eq(RetryTask::getGroupName, groupName).ge(RetryTask::getCreateDt, lastAt)).getRecords();
+ .eq(RetryTask::getGroupName, groupName).ge(RetryTask::getCreateDt, lastAt)
+ .orderByAsc(RetryTask::getCreateDt)).getRecords();
}
@Override
diff --git a/x-retry-server/src/main/java/com/x/retry/server/service/impl/RetryTaskServiceImpl.java b/x-retry-server/src/main/java/com/x/retry/server/service/impl/RetryTaskServiceImpl.java
index dd6120c0..0f5028bc 100644
--- a/x-retry-server/src/main/java/com/x/retry/server/service/impl/RetryTaskServiceImpl.java
+++ b/x-retry-server/src/main/java/com/x/retry/server/service/impl/RetryTaskServiceImpl.java
@@ -17,6 +17,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
/**
* @author www.byteblogs.com
@@ -53,6 +54,9 @@ public class RetryTaskServiceImpl implements RetryTaskService {
if (StringUtils.isNotBlank(queryVO.getBizId())) {
retryTaskLambdaQueryWrapper.eq(RetryTask::getBizId, queryVO.getBizId());
}
+ if (Objects.nonNull(queryVO.getRetryStatus())) {
+ retryTaskLambdaQueryWrapper.eq(RetryTask::getRetryStatus, queryVO.getRetryStatus());
+ }
RequestDataHelper.setPartition(queryVO.getGroupName());
diff --git a/x-retry-server/src/main/java/com/x/retry/server/web/model/request/RetryTaskQueryVO.java b/x-retry-server/src/main/java/com/x/retry/server/web/model/request/RetryTaskQueryVO.java
index 779641a4..a9f9d30a 100644
--- a/x-retry-server/src/main/java/com/x/retry/server/web/model/request/RetryTaskQueryVO.java
+++ b/x-retry-server/src/main/java/com/x/retry/server/web/model/request/RetryTaskQueryVO.java
@@ -18,4 +18,6 @@ public class RetryTaskQueryVO extends BaseQueryVO {
private String bizNo;
private String bizId;
+
+ private Integer retryStatus;
}