0.0.2.0
修复下游传递非重试status code 时候不在进行重试
This commit is contained in:
parent
39abb25373
commit
3c38542315
@ -64,8 +64,7 @@
|
||||
<dependency>
|
||||
<groupId>org.awaitility</groupId>
|
||||
<artifactId>awaitility</artifactId>
|
||||
<version>2.0.0</version>
|
||||
<scope>test</scope>
|
||||
<version>4.1.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.squareup.okhttp3</groupId>
|
||||
|
@ -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) {
|
||||
|
@ -7,7 +7,7 @@
|
||||
<template>
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="组名称">
|
||||
<a-input v-model="queryParam.groupName" placeholder="请输入组名称"/>
|
||||
<a-input v-model="queryParam.groupName" placeholder="请输入组名称" allowClear/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</template>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<template>
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="场景名称">
|
||||
<a-input v-model="queryParam.sceneName" placeholder="请输入场景名称"/>
|
||||
<a-input v-model="queryParam.sceneName" placeholder="请输入场景名称" allowClear/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</template>
|
||||
|
@ -12,7 +12,7 @@
|
||||
</a-col>
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="场景名称">
|
||||
<a-select v-model="queryParam.sceneName" placeholder="请选择场景名称">
|
||||
<a-select v-model="queryParam.sceneName" placeholder="请选择场景名称" allowClear>
|
||||
<a-select-option v-for="item in sceneList" :value="item.sceneName" :key="item.sceneName"> {{ item.sceneName }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
@ -20,12 +20,12 @@
|
||||
<template v-if="advanced">
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="业务编号">
|
||||
<a-input v-model="queryParam.bizNo" placeholder="请输入业务编号"/>
|
||||
<a-input v-model="queryParam.bizNo" placeholder="请输入业务编号" allowClear/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="业务id">
|
||||
<a-input v-model="queryParam.bizId" placeholder="请输入业务id"/>
|
||||
<a-input v-model="queryParam.bizId" placeholder="请输入业务id" allowClear/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</template>
|
||||
|
@ -5,14 +5,14 @@
|
||||
<a-row :gutter="48">
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="组名称">
|
||||
<a-select v-model="queryParam.groupName" placeholder="请输入组名称" @change="value => handleChange(value)">
|
||||
<a-select v-model="queryParam.groupName" placeholder="请输入组名称" @change="value => handleChange(value)" allowClear>
|
||||
<a-select-option v-for="item in groupNameList" :value="item" :key="item">{{ item }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="场景名称">
|
||||
<a-select v-model="queryParam.sceneName" placeholder="请选择场景名称">
|
||||
<a-select v-model="queryParam.sceneName" placeholder="请选择场景名称" allowClear>
|
||||
<a-select-option v-for="item in sceneList" :value="item.sceneName" :key="item.sceneName"> {{ item.sceneName }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
@ -20,12 +20,12 @@
|
||||
<template v-if="advanced">
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="业务编号">
|
||||
<a-input v-model="queryParam.bizNo" placeholder="请输入业务编号"/>
|
||||
<a-input v-model="queryParam.bizNo" placeholder="请输入业务编号" allowClear/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="业务id">
|
||||
<a-input v-model="queryParam.bizId" placeholder="请输入业务id"/>
|
||||
<a-input v-model="queryParam.bizId" placeholder="请输入业务id" allowClear/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</template>
|
||||
|
@ -12,20 +12,27 @@
|
||||
</a-col>
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="场景名称">
|
||||
<a-select v-model="queryParam.sceneName" placeholder="请选择场景名称">
|
||||
<a-select v-model="queryParam.sceneName" placeholder="请选择场景名称" allowClear>
|
||||
<a-select-option v-for="item in sceneList" :value="item.sceneName" :key="item.sceneName"> {{ item.sceneName }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="重试状态">
|
||||
<a-select v-model="queryParam.retryStatus" placeholder="请选择状态" allowClear>
|
||||
<a-select-option v-for="(value, key) in retryStatus" :value="key" :key="key"> {{ value }}</a-select-option>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<template v-if="advanced">
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="业务编号">
|
||||
<a-input v-model="queryParam.bizNo" placeholder="请输入业务编号"/>
|
||||
<a-input v-model="queryParam.bizNo" placeholder="请输入业务编号" allowClear/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="业务id">
|
||||
<a-input v-model="queryParam.bizId" placeholder="请输入业务id"/>
|
||||
<a-input v-model="queryParam.bizId" placeholder="请输入业务id" allowClear/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
</template>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<a-row :gutter="48">
|
||||
<a-col :md="8" :sm="24">
|
||||
<a-form-item label="用户名">
|
||||
<a-input v-model="queryParam.username" placeholder="请输入用户名"/>
|
||||
<a-input v-model="queryParam.username" placeholder="请输入用户名" allowClear/>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :md="!advanced && 8 || 24" :sm="24">
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -135,6 +135,9 @@ public class RetrySiteSnapshot {
|
||||
RETRY_CLASS_METHOD_ENTRANCE.remove();
|
||||
RETRY_STAGE.remove();
|
||||
|
||||
removeEntryMethodTime();
|
||||
removeRetryHeader();
|
||||
removeRetryStatusCode();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -35,7 +35,8 @@ public class MybatisRetryTaskAccess extends AbstractRetryTaskAccess {
|
||||
return retryTaskMapper.selectPage(new PageDTO<>(0, pageSize),
|
||||
new LambdaQueryWrapper<RetryTask>()
|
||||
.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
|
||||
|
@ -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());
|
||||
|
||||
|
@ -18,4 +18,6 @@ public class RetryTaskQueryVO extends BaseQueryVO {
|
||||
private String bizNo;
|
||||
|
||||
private String bizId;
|
||||
|
||||
private Integer retryStatus;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user