针对集群环境job高可用拦截切面
目前环境并非高并发加锁提高安全,仅仅做job一主多备方案
采用方式:zk选举模式,非负载均发
直接上代码
@Component
@Aspect
public class JobLockAspect extends CuratorCompeteNodeLeader {
Logger logger = LoggerFactory.getLogger(JobLockAspect.class);
/**
* 拦截@Scheduled注解job
* 所有job启动之前判断当前服务器是否主,主执行
* @param joinPoint
* @return
*/
@Around(value = "@annotation(org.springframework.scheduling.annotation.Scheduled)")
public Object beforeMethod(ProceedingJoinPoint joinPoint){
Object result = null;
try {
return excuteMethod(result,joinPoint);
} catch (Exception e) {
logger.error("leaderLatch judgment leader error:",e);
try {
logger.info("lead