Commit 78a49b35 authored by 黎博's avatar 黎博

获取repo列表增加redis缓存

parent 4aa78fb1
package cn.qg.holmes.service.k8s; package cn.qg.holmes.service.k8s;
import cn.qg.holmes.utils.RedisUtils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.profile.ClientProfile; import com.tencentcloudapi.common.profile.ClientProfile;
...@@ -7,6 +8,7 @@ import com.tencentcloudapi.tcr.v20190924.TcrClient; ...@@ -7,6 +8,7 @@ import com.tencentcloudapi.tcr.v20190924.TcrClient;
import com.tencentcloudapi.tcr.v20190924.models.*; import com.tencentcloudapi.tcr.v20190924.models.*;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.*; import java.util.*;
...@@ -19,6 +21,9 @@ import java.util.*; ...@@ -19,6 +21,9 @@ import java.util.*;
@Component @Component
public class ImageService { public class ImageService {
@Autowired
RedisUtils redisUtils;
private TcrClient tcrClient; private TcrClient tcrClient;
public ImageService() { public ImageService() {
...@@ -53,11 +58,16 @@ public class ImageService { ...@@ -53,11 +58,16 @@ public class ImageService {
} }
/** /**
* 获取腾讯镜像仓库的镜像 * 获取腾讯镜像仓库的镜像, 做了redis缓存,缓存时间30分钟
* @param namespace qa-base, qa-java, qa-ui 等等 * @param namespace qa-base, qa-java, qa-ui 等等
* @return * @return
*/ */
public List<RepoInfo> getRepoInfoList(String namespace) { public List<RepoInfo> getRepoInfoList(String namespace) {
String REPO_PREFIX = "k8s:repo:";
Object redisValue = redisUtils.get(REPO_PREFIX + namespace);
if (redisValue != null) {
return JSON.parseArray(redisValue.toString(), RepoInfo.class);
}
try { try {
DescribeRepositoryFilterPersonalRequest request = new DescribeRepositoryFilterPersonalRequest(); DescribeRepositoryFilterPersonalRequest request = new DescribeRepositoryFilterPersonalRequest();
request.setNamespace(namespace); request.setNamespace(namespace);
...@@ -77,6 +87,7 @@ public class ImageService { ...@@ -77,6 +87,7 @@ public class ImageService {
response = tcrClient.DescribeRepositoryFilterPersonal(request); response = tcrClient.DescribeRepositoryFilterPersonal(request);
repoInfoList.addAll(Arrays.asList(response.getData().getRepoInfo())); repoInfoList.addAll(Arrays.asList(response.getData().getRepoInfo()));
} }
redisUtils.set(REPO_PREFIX + namespace, JSON.toJSONString(repoInfoList), 1800);
return repoInfoList; return repoInfoList;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -38,8 +38,6 @@ public class K8sService { ...@@ -38,8 +38,6 @@ public class K8sService {
private KubernetesClient kubernetesClient; private KubernetesClient kubernetesClient;
private final String NS_PREFIX = "namespace:";
public K8sService() { public K8sService() {
try { try {
String configYAML = String.join("\n", readConfigFile("kube-config.yml")); String configYAML = String.join("\n", readConfigFile("kube-config.yml"));
...@@ -120,6 +118,7 @@ public class K8sService { ...@@ -120,6 +118,7 @@ public class K8sService {
*/ */
public List<Map> getNamespaceList(String env) { public List<Map> getNamespaceList(String env) {
// 首先从缓存获取 // 首先从缓存获取
String NS_PREFIX = "k8s:namespace:";
Object redisValue = redisUtils.get(NS_PREFIX + env); Object redisValue = redisUtils.get(NS_PREFIX + env);
if (redisValue != null) { if (redisValue != null) {
return JSON.parseArray(redisValue.toString(), Map.class); return JSON.parseArray(redisValue.toString(), Map.class);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment