springboot-配置心跳
@Slf4j @EnableScheduling @Component public class FyServeHeartConfig { @Autowired private RedisUtil redisUtil; @Scheduled(fixedRate = 5000) public void myTask() { log.debug("开始心跳"); int expireCount = this.redisUtil.hasKey(FyConstant.FY_SERVE_EXPIRE) ? this.redisUtil.get(FyConstant.FY_SERVE_EXPIRE) : 0; HttpResponse httpResponse = new HttpGetUtil(BaseApi.BASE_PAY_URL.getBaseUrl() + "/heartbeat").buildGet().execute(); if (httpResponse.getStatusLine().getStatusCode() != 200) { log.debug("心跳失败"); this.redisUtil.set(FyConstant.FY_SERVE_EXPIRE, expireCount + 1); } if (httpResponse.getStatusLine().getStatusCode() != 200 && expireCount > 5) { log.debug("次数超过5次,切换地址"); this.redisUtil.set(FyConstant.FY_SERVE_URL, BaseApi.BASE_PAY_URL_2.getBaseUrl()); } if (httpResponse.getStatusLine().getStatusCode() == 200) { log.debug("心跳成功"); //成功就删除缓存 if (this.redisUtil.hasKey(FyConstant.FY_SERVE_EXPIRE)) { this.redisUtil.delete(FyConstant.FY_SERVE_EXPIRE); } //切换回主地址 String payUrl = this.redisUtil.get(FyConstant.FY_SERVE_URL); if (payUrl.equals(BaseApi.BASE_PAY_URL_2.getBaseUrl())) { this.redisUtil.set(FyConstant.FY_SERVE_URL, BaseApi.BASE_PAY_URL.getBaseUrl()); } } } }