From 3c385423158e53ed154c437775f8d35dd6998d5b Mon Sep 17 00:00:00 2001 From: byteblogs168 <598092184@qq.com> Date: Sat, 14 Jan 2023 20:00:14 +0800 Subject: [PATCH] =?UTF-8?q?0.0.2.0=20=E4=BF=AE=E5=A4=8D=E4=B8=8B=E6=B8=B8?= =?UTF-8?q?=E4=BC=A0=E9=80=92=E9=9D=9E=E9=87=8D=E8=AF=95status=20code=20?= =?UTF-8?q?=E6=97=B6=E5=80=99=E4=B8=8D=E5=9C=A8=E8=BF=9B=E8=A1=8C=E9=87=8D?= =?UTF-8?q?=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- example/pom.xml | 3 +-- .../ExistsTransactionalRetryServiceTest.java | 4 ++-- frontend/src/views/config/GroupList.vue | 2 +- .../src/views/config/basicConfigForm/SceneList.vue | 2 +- frontend/src/views/task/RetryDeadLetterList.vue | 6 +++--- frontend/src/views/task/RetryLogList.vue | 8 ++++---- frontend/src/views/task/RetryTaskList.vue | 13 ++++++++++--- frontend/src/views/user/UserList.vue | 2 +- .../x/retry/client/core/client/RetryEndPoint.java | 1 + .../retry/client/core/intercepter/HeaderAspect.java | 6 ++++++ .../client/core/intercepter/RetrySiteSnapshot.java | 3 +++ .../access/retry/MybatisRetryTaskAccess.java | 3 ++- .../server/service/impl/RetryTaskServiceImpl.java | 4 ++++ .../server/web/model/request/RetryTaskQueryVO.java | 2 ++ 14 files changed, 41 insertions(+), 18 deletions(-) diff --git a/example/pom.xml b/example/pom.xml index 95d1d4d11..de13010ad 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 1bdc59b64..a45067d7b 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 e618b68eb..0e4589b27 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 07d9c53af..42ab1f514 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 6c094e9f1..b42ef0a9c 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 97e82a7f4..a1392a721 100644 --- a/frontend/src/views/task/RetryLogList.vue +++ b/frontend/src/views/task/RetryLogList.vue @@ -5,14 +5,14 @@ - + {{ item }} - + {{ item.sceneName }} @@ -20,12 +20,12 @@ diff --git a/frontend/src/views/task/RetryTaskList.vue b/frontend/src/views/task/RetryTaskList.vue index 7cc1e10c0..6a784dabf 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 b4c2aa04e..3d3b7a9ce 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 40e1d69d7..a87a4c7bb 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 586ed1e08..937f4d574 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 1c1ee7a7c..837ad8fbd 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 7e5469e77..e6e192885 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 dd6120c0b..0f5028bcd 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 779641a4a..a9f9d30a8 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; }