【JAVA】【更新版本】当在上线新版时,又存在数据需要刷新的情况;就会导致部分接口是不能访问的,但又需要其他接口正常访问,可以在对应的接口加个版本时间限制访问。

简介: 【JAVA】【更新版本】当在上线新版时,又存在数据需要刷新的情况;就会导致部分接口是不能访问的,但又需要其他接口正常访问,可以在对应的接口加个版本时间限制访问。

一、前言


  当我们在上线新版程序时,又存在数据需要刷新的情况;就会导致部分接口是不能访问的,但又需要其他接口正常访问。


  这时候我们可以在对应的接口加个版本时间限制访问。并且在此期间变为维护阶段,用户点击时,反馈是维护中。背后是在对数据进行刷新...


二、过程


首先,我们需要有的是,数据刷新完成时间,一定要数据刷新完成后的时间。也就是维护结束时间,等当前时间过了维护时间,就可以正常访问了~ 思路和代码比较简单,也有详细注释,就不过多陈述了,直接看代码吧~


三、详细讲解


定义一个上线时间


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");
  }


文章小尾巴


文章写作、模板、文章小尾巴可参考:《写作“小心思”》


  感谢你看到最后,最后再说两点~


  ①如果你持有不同的看法,欢迎你在文章下方进行留言、评论。

  ②如果对你有帮助,或者你认可的话,欢迎给个小点赞,支持一下~


  我是南方者,一个热爱计算机更热爱祖国的南方人。


  (文章内容仅供学习参考,如有侵权,非常抱歉,请立即联系作者删除。)



目录
相关文章
|
21天前
|
前端开发 JavaScript Java
java常用数据判空、比较和类型转换
本文介绍了Java开发中常见的数据处理技巧,包括数据判空、数据比较和类型转换。详细讲解了字符串、Integer、对象、List、Map、Set及数组的判空方法,推荐使用工具类如StringUtils、Objects等。同时,讨论了基本数据类型与引用数据类型的比较方法,以及自动类型转换和强制类型转换的规则。最后,提供了数值类型与字符串互相转换的具体示例。
|
1月前
|
Java 开发者
在 Java 中,一个类可以实现多个接口吗?
这是 Java 面向对象编程的一个重要特性,它提供了极大的灵活性和扩展性。
148 57
|
1月前
|
Java
在Java中实现接口的具体代码示例
可以根据具体的需求,创建更多的类来实现这个接口,以满足不同形状的计算需求。希望这个示例对你理解在 Java 中如何实现接口有所帮助。
87 38
|
7天前
|
数据采集 JSON Java
利用Java获取京东SKU接口指南
本文介绍如何使用Java通过京东API获取商品SKU信息。首先,需注册京东开放平台账号并创建应用以获取AppKey和AppSecret。接着,查阅API文档了解调用方法。明确商品ID后,构建请求参数并通过HTTP客户端发送请求。最后,解析返回的JSON数据提取SKU信息。注意遵守API调用频率限制及数据保护法规。此方法适用于电商平台及其他数据获取场景。
|
12天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
43 6
|
28天前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
26 3
|
29天前
|
Java API
Java中内置的函数式接口
Java中内置的函数式接口
25 2
|
1月前
|
Java
在Java中如何实现接口?
实现接口是 Java 编程中的一个重要环节,它有助于提高代码的规范性、可扩展性和复用性。通过正确地实现接口,可以使代码更加灵活、易于维护和扩展。
73 3
|
1月前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
97 1
|
1月前
|
Java Android开发
Eclipse 创建 Java 接口
Eclipse 创建 Java 接口
32 1