java - 如何根据条件设置rest-api调用之间的等待时间

标签 java

我必须调用一个返回用户列表及其状态的 API。 例如:

[
  {"user":"ram",
    "status":"inprogress"
  },
  {"user":"abdullah",
    "status":"inprogress"
  },
  {"user":"jhon",
    "status":"completed"
  },
  {"user":"guru",
    "status":"inprogress"
  }
] 

如果任何用户的状态为“进行中”,则在“(用户数量 *2)秒”后 必须再次调用相同的 API。

如果任何租户的状态仍然为“进行中”,则必须抛出异常

我想尝试一下

    wait(number of users *2000) 
        or
   Thread.sleep(number of users *2000) 

除了这两种之外,还有其他更好的方法吗?

int no_of_users_status_is_inProgress=0;
ResponseEntity<UserAndStatusData> response=new RestTemplate.exchange(rl,HttpMethod.GET,reqEntity,UserAndStatusData.class,new Object[] {});
'
'
====updating no_of_users_status_is_inProgress====
'
'
if(no_of_users_status_is_inProgress>0){

   wait(no_of_users_status_is_inProgress*2000);

   ResponseEntity<UserAndStatusData> response2=new RestTemplate.exchange(rl,HttpMethod.GET,reqEntity,UserAndStatusData.class,new Object[] {});
   '
   '
   ====updating no_of_users_status_is_inProgress====
   '
   '
   if(no_of_users_status_is_inProgress>0){
      throw customException("timeout");
   }
}

最佳答案

您可以使用java的ScheduledExecutorService,它具有调度方法和设置延迟的选项。 ScheduledExecutorService 将持续检查用户状态。如果你想关闭该服务,你可以这样做。下面是相同的 Javadoc 链接: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html

关于java - 如何根据条件设置rest-api调用之间的等待时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55779868/

相关文章:

java - 在 kotlin 的 intellij Android Studio 中禁用 Wild Cart 导入

java - 如何根据微调器的选择将纯 TextView 添加到当前布局?

java - 如何停止android应用程序中的所有工作线程

java - 如何使用RandomAccessFile恢复中断下载?

java - Struts 不从参数列表中排除提交操作

Java:如何为 isos 的两侧创建一个条件。三角形但不相等。三角形

Java 后端和 iOS 客户端 - RESTful

java - Hibernate 5.2后如何使用 `setResultTransformer`?

java - 是否有在 Java 中解析维基百科 xml 转储文件的解决方案?

java - Runtime.getRuntime().exec(),执行Java类