我的问题是说我的方法getAllVendorDetails()
将调用另一个方法getVendordetailsById(int id)
,如果该方法getVendordetailsById()
在指定时间(如 30 秒)内没有返回响应/答案,我需要移动到下一个供应商或跳过执行并向用户显示错误消息。我们如何在 Java 中实现这个结果。我尝试了下面的代码,但它不起作用。在它进入 之后getVendordetailsById()
,它没有返回。
公共类测试{
public static void main(String[] args) {
long currentTime=System.currentTimeMillis();
Date date=new Date(currentTime);
date.setSeconds(date.getSeconds()+30);
long end=date.getTime();
System.out.println("Time="+(end-currentTime));
List<Integer> vendorId= new ArrayList<Integer>();
for (int i = 1; i <= 100000; i++) {
vendorId.add(i);
}
boolean isSuccess=false;
boolean flag=true;
while(end>System.currentTimeMillis()){
if(flag){
flag=false;
for (int i = 0; i < vendorId.size() && end>System.currentTimeMillis() ; i++) {
getVendordetailsById(vendorId.get(i));
isSuccess=true;
}
}
System.out.println("bye");
}
if(isSuccess){
System.out.println("Success");
}else{
System.out.println("Errorr");
}
System.out.println("Current time="+System.currentTimeMillis());
}
private static void getVendordetailsById(Integer id) {
System.out.println("vendor number="+id);
int a=0;
for (int i = 1; i <= 1000; i++) {
a=a+i;
}
System.out.println("Current value of a="+a);
}
}