gpt4 book ai didi

java - 如何使用 Java 和 Spring 在 REST Web 服务中 wait()?

转载 作者:行者123 更新时间:2023-12-01 19:30:20 26 4
gpt4 key购买 nike

我正在开发 Spring Boot 微服务,该微服务与另一个微服务通信以使用 REST 接收一些数据。类似这样的事情:

public class PdfClient {

private ErternMicr externMicr;

@Autowired
public PdfClient(ErternMicr externMicr) {
this.externMicr = externMicr;
}

public String getData(String pdfId) {
String pdf = "0";
pdf = externMicr.getPdfData(pdfId);
return pdf;
}
}

因此,当调用这个 externMicr.getPdfData(pdfId) 时,我使用 REST 从另一个微服务获取一些数据。我需要做的是我不想等待很长时间才能接收数据,我想调用这个方法3次,每次10秒,如果这段时间没有数据到来,返回将是“0”。我怎样才能做到这一点?任何反馈将不胜感激!谢谢你!

最佳答案

有多种方法可以做到这一点,您可以尝试使用并发包中的执行器:

final ExecutorService restService = Executors.newSingleThreadExecutor();

try {
final Future<String> pdfFuture = restService.submit(() -> {
// PUT YOUR PDF CODE HERE
return pdf;
});

String pdfFile = pdfFuture.get(10, TimeUnit.SECONDS);
} catch (final TimeoutException e) {
// TIMEOUT!
return "0";
} finally {
restService.shutdown();
}

您可以将此作为您想要实现的目标的基础。

关于java - 如何使用 Java 和 Spring 在 REST Web 服务中 wait()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59936732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com