提交 d862e281 编写于 作者: zhehao.chen's avatar zhehao.chen

fix--压测缓存删除逻辑

上级 f4dc6b34
流水线 #51981 已取消 于阶段
......@@ -2,12 +2,13 @@ package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.service.TokenService;
import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.utils.entity.PicaAdmin;
import com.pica.cloud.foundation.utils.entity.PicaUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.annotations.ApiIgnore;
import java.util.Map;
......@@ -48,4 +49,11 @@ public class TokenController extends AccountBaseController {
tokenService.removeToken(timestamp);
return PicaResponse.toResponse();
}
@ApiIgnore
@GetMapping(value = "/token/remove/examTest")
public PicaResponse removeTokenOfExamTest(@RequestParam("endValue") Integer endValue) {
tokenService.removeTokenOfExamTest(endValue);
return PicaResponse.toResponse();
}
}
......@@ -15,4 +15,6 @@ public interface TokenService {
/** 删除token */
void removeToken(Long timestamp);
void removeTokenOfExamTest(Integer endValue);
}
......@@ -7,11 +7,11 @@ import com.pica.cloud.account.account.server.util.TokenUtils;
import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.entity.PicaUser;
import com.pica.cloud.foundation.utils.utils.CommonUtil;
import com.pica.cloud.foundation.utils.utils.date.D;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
......@@ -99,23 +99,23 @@ public class TokenServiceImpl implements TokenService {
@Override
public void removeToken(Long timestamp) {
//new Thread(() -> {
try {
Date lastLoginTime = new Date(timestamp);
for (Integer fromDoctorId = 0; fromDoctorId < 1000412091; fromDoctorId += 10000) {
logger.info("start remove token: {}", fromDoctorId);
List<Integer> doctorIdList = doctorMapper.selectIdByParams(fromDoctorId, fromDoctorId + 10000, lastLoginTime);
if (CollectionUtils.isEmpty(doctorIdList)) {
Thread.sleep(2000);
continue;
}
removeTokenByDoctorIdList(doctorIdList);
logger.info("remove token done: {} {}", fromDoctorId, doctorIdList.size());
}
} catch (Exception ex) {
// ingnore
//new Thread(() -> {
try {
Date lastLoginTime = new Date(timestamp);
for (Integer fromDoctorId = 0; fromDoctorId < 1000412091; fromDoctorId += 10000) {
logger.info("start remove token: {}", fromDoctorId);
List<Integer> doctorIdList = doctorMapper.selectIdByParams(fromDoctorId, fromDoctorId + 10000, lastLoginTime);
if (CollectionUtils.isEmpty(doctorIdList)) {
Thread.sleep(2000);
continue;
}
//});
removeTokenByDoctorIdList(doctorIdList);
logger.info("remove token done: {} {}", fromDoctorId, doctorIdList.size());
}
} catch (Exception ex) {
// ingnore
}
//});
}
private void removeTokenByDoctorIdList(List<Integer> doctorIdList) throws Exception {
......@@ -132,4 +132,39 @@ public class TokenServiceImpl implements TokenService {
Thread.sleep(10);
}
}
@Async
@Override
public void removeTokenOfExamTest(Integer endValue) {
Integer num = 0;
if (endValue < 200000000) {
return;
}
StringBuilder builder = new StringBuilder("");
for (int i = 200000000; i < endValue; i++) {
String key1 = String.format("exam.100006.user.%d.using", i);
String str = redisClient.get(key1);
if (!StringUtils.isEmpty(str)) {
num++;
builder.append(key1);
builder.append(":");
builder.append(str);
builder.append("|-|-|-|-|");
redisClient.del(key1);
}
if (i % 100 == 0 || (i + 1) == endValue) {
logger.info(builder.toString());
builder = new StringBuilder("");
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
logger.info("removeTokenOfExamTestNum:{}", num);
}
}
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册