存在一个休息服务,它执行一些计算并将结果打印在作为响应返回的excel文件中。随着数据的增加,我们希望实现以下行为。如果文件在3秒内就绪,请返回excel else,发送短信..然后将文件邮寄给用户。
任何建议,我们如何在Java中实现这个功能?
答案 0 :(得分:3)
使用Future
超时:
public String getExel() {
CompletableFuture<String> getter = CompletableFuture.supplyAsync(() -> "result");
try {
return getter().get(3, TimeUnits.SECONDS);
} catch(TimeoutException ex) {
// invoke email sending
getter.thenAcceptAsync(result -> sendEmail(result));
// I will send you email later
return "XXx to indicate you will send him later";
}
}
public void sendEmail(String resultFromGetExel) {
}