最近十年之约的RSS订阅升级了,原本订阅地址失效了,不想错失大佬们发表的精彩博文,故向创始人申请了一个API权限。
谁知道大量请求造成错误: 429 Too Many Requests
, 后来发现是我请求过于频繁了。我就想到可以将线程等待几秒再执行,每天大概就请求接口这一次,不在乎数据是否实时。所以找到以下方法并做个记录。
方法一:通过线程的sleep方法
在需要程序等待的地方加入这个语句,实现让程序等待,这里的参数1000是以毫秒为单位,即这语句可以让程序等待1秒。
Thread.currentThread().sleep(1000);
方法二:TimeUnit类里的sleep方法
TimeUnit
类提供的方法,其实底层调用的也是Thread
类的sleep
方法,让程序进行等待。只不过他在上层根据时间单位进行了封装,如下列代码,共有7种可以选择,可以方便的选择自己需要的时间单位进行使用。
TimeUnit.DAYS.sleep(1);//天
TimeUnit.HOURS.sleep(1);//小时
TimeUnit.MINUTES.sleep(1);//分
TimeUnit.SECONDS.sleep(1);//秒
TimeUnit.MILLISECONDS.sleep(1000);//秒
TimeUnit.MICROSECONDS.sleep(1000);//微妙
TimeUnit.NANOSECONDS.sleep(1000);//纳秒
恭喜大佬get新姿势,但是十年之约的api已经取消了请求限制
没事,搞的是定时任务,等待一下也无所谓。