91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

redis宕機如何保證業務正常

小新
168
2021-01-16 19:35:04
欄目: 云計算

redis宕機如何保證業務正常

redis宕機可通過實現Redis緩存切面來保證業務正常,示例代碼:

package com.raymon.hcp.security.aspect;

import com.raymon.hcp.security.annotation.CacheException;

import org.aspectj.lang.ProceedingJoinPoint;

import org.aspectj.lang.Signature;

import org.aspectj.lang.annotation.Around;

import org.aspectj.lang.annotation.Aspect;

import org.aspectj.lang.annotation.Pointcut;

import org.aspectj.lang.reflect.MethodSignature;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.core.annotation.Order;

import org.springframework.stereotype.Component;

import java.lang.reflect.Method;

/**

* Redis緩存切面,防止Redis宕機影響正常業務邏輯

* Created by zhanglei on 2020/3/17.

*/

@Aspect

@Component

@Order(2)

public class RedisCacheAspect {

private static Logger LOGGER = LoggerFactory.getLogger(RedisCacheAspect.class);

@Pointcut("execution(public * com.raymon.hcp.portal.service.*CacheService.*(..)) || execution(public * com.raymon.hcp.service.*CacheService.*(..))")

public void cacheAspect() {

}

@Around("cacheAspect()")

public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {

Signature signature = joinPoint.getSignature();

MethodSignature methodSignature = (MethodSignature) signature;

Method method = methodSignature.getMethod();

Object result = null;

try {

result = joinPoint.proceed();

} catch (Throwable throwable) {

//有CacheException注解的方法需要拋出異常

if (method.isAnnotationPresent(CacheException.class)) {

throw throwable;

} else {

LOGGER.error(throwable.getMessage());

}

}

return result;

}

}

0
许昌市| 沾益县| 安西县| 鄂州市| 汨罗市| 会东县| 三门峡市| 临泉县| 巴楚县| 武城县| 正定县| 岳池县| 三穗县| 明水县| 合山市| 富平县| 固镇县| 鄢陵县| 榆中县| 莲花县| 资源县| 弥渡县| 拉萨市| 潮州市| 永德县| 兴山县| 新巴尔虎右旗| 海城市| 额尔古纳市| 普兰店市| 黑河市| 托里县| 南江县| 罗山县| 卢湾区| 曲麻莱县| 常宁市| 昌吉市| 西华县| 平凉市| 益阳市|