redis设置定时器(密码或者频繁接口访问)
//新增逻辑,用radis来限制接口被重复访问。
//声明一个rediskey特殊标志;
String redisKey = "ADD_COLLECT" +user_id ;//设置用户的标志
int count =Integer.valueOf((String) redis.getValue("redisKey"));
//判断是否是第一次调用接口,如果是第一次调用,设置使用次数为1,调用工具类,将用户标志作为key,次数作为value存入;
if(count==0 ){
num=1;
JedisUtil redis = new JedisUtil();// 获取jedis
redis.setValue("redisKey", ""+num);
int a =userService.AdduserCollections(uuid, logger, inputMap);
if(a==1){
outputData.setMsg("成功");
}else{
outputData.setMsg("失败");
}
}
//判断redis中值存在,累加一次;获取用户访问接口的次数,判断是否大于
if(count>0){
num++;
redis.setTimeValue(redisKey, 60, "21");//设置60s内收藏不能超过20次
redis.setValue("redisKey", ""+num);
if(count>20){
outputData.setMsg("每分钟只能收藏20次,您收藏过于频繁,请明日再试再试");
//获取当前的时间,设置24小时候解除限制。
Date date = new Date();// 新建此时的的系统时间
Date dateTomorrow=null;
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DAY_OF_MONTH, +1);//+1今天的时间加一天
dateTomorrow = calendar.getTime();//获取明天的时间
redis.setValue("timestart", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dateTomorrow));
}
}
//作为入参调用AuctionService 的queryAuctionList ()查询拍卖会集合,接收返回值;
//解除禁用状态
logger.info("调用auctionService的queryAuctionList查询拍卖会集合,入参是"+inputMap);
//判断
String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
String timestart =(String) redis.getValue("timestart");
if(date.equals(timestart)){
redis.delValue("redisKey");
}