一、前言
当我们在上线新版程序时,又存在数据需要刷新的情况;就会导致部分接口是不能访问的,但又需要其他接口正常访问。
这时候我们可以在对应的接口加个版本时间限制访问。并且在此期间变为维护阶段,用户点击时,反馈是维护中。背后是在对数据进行刷新...
二、过程
首先,我们需要有的是,数据刷新完成时间,一定要数据刷新完成后的时间。也就是维护结束时间,等当前时间过了维护时间,就可以正常访问了~ 思路和代码比较简单,也有详细注释,就不过多陈述了,直接看代码吧~
三、详细讲解
定义一个上线时间
String NEW_VERSION_TIME = "2022-03-10 5:20:00";
获取当前时间
Date nowDate = new Date();
设置对应格式,用于转化
Calendar cal = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
获取现在的时间戳
cal.setTime(nowDate); long nowTimeNum = cal.getTimeInMillis();
塞入上线时间,获取对应时间戳(这里塞入时间是需要try catch的,可参考完整代码)
cal.setTime(sdf.parse(NEW_VERSION_TIME)); long versionTimeNum = cal.getTimeInMillis();
对比当前时间戳和上线时间戳,未达到则直接返回,不往下执行.
boolean isNew = versionTimeNum - nowTimeNum > 0 ? true : false; // 大于0说明当前请求在维护时间里 if (isNew) { System.out.println("当前正在维护哦!请在" + NEW_VERSION_TIME + "之后再试。"); // 这时候数据库是有在刷新数据滴~ return; // 退出接口 }
四、完整代码
// 首先,上线新版程序时,让项目进行维护状态(在此期间变为维护阶段,用户点击时,反馈是维护中。背后是在对数据进行刷新) public static void main(String[] args) { // 新版上线时间,即维护时间(2022年3月10日 5点20分) String NEW_VERSION_TIME = "2022-03-10 5:20:00"; // 如果当前时间超过了维护时间,就能接口正常访问了 Date nowDate = new Date(); Calendar cal = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); cal.setTime(nowDate); long nowTimeNum = cal.getTimeInMillis(); try { cal.setTime(sdf.parse(NEW_VERSION_TIME)); long versionTimeNum = cal.getTimeInMillis(); boolean isNew = versionTimeNum - nowTimeNum > 0 ? true : false; // 大于0说明当前请求在维护时间里 if (isNew) { System.out.println("当前正在维护哦!请在" + NEW_VERSION_TIME + "之后再试。"); // 这时候数据库是有在刷新数据滴~ return; // 退出接口 } } catch (Exception e) { System.out.println("出错啦!"); e.printStackTrace(); } System.out.println("已经维护结束啦,可以正常访问!"); System.out.println("南方者 - 掘金"); System.out.println("掘金博客地址:https://juejin.cn/user/2840793779295133"); }
文章小尾巴
文章写作、模板、文章小尾巴可参考:《写作“小心思”》
感谢你看到最后,最后再说两点~
①如果你持有不同的看法,欢迎你在文章下方进行留言、评论。
②如果对你有帮助,或者你认可的话,欢迎给个小点赞,支持一下~
(文章内容仅供学习参考,如有侵权,非常抱歉,请立即联系作者删除。)