获取token和token的过期时间后不断刷新过期时间的处理方式
需求:把从第三方接口获取到的token的过期时间保存,下一次在过期时间前触发刷新token。
第一种:
package com.transferdata.demo;
import com.sun.jmx.snmp.Timestamp;
import java.util.Timer;
import java.util.TimerTask;
public class TestTimer {
int time;
public void timer1() {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
System.out.println("定时任务执行一次");
time = 3000;
timer2(time);
}
}, 0);
}
public void timer2(int time) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
System.out.println("循环执行"+new Timestamp(System.currentTimeMillis()));
}
}, time, time);
}
public static void main(String[] args) {
TestTimer testTimer = new TestTimer();
testTimer.timer1();
}
}
解释说明:这里的time是过期时间,在第一个Timer中3000赋值给time,在实际运用中相当于就是把获取到的token的过期时间赋值给time,然后当做参数传入第二个Timer,当做第二个imer的执行时间不断执行。
效果:
看秒数,三秒执行一次,正好是3000毫秒,完毕!
第二种:
我们项目中如果有用到redis,那就更好处理token了;保存token和token的过期时间为字符串。如果没有token的key的话,去代码手动触发一次获取token的方法!
还没有评论,来说两句吧...