gpt4 book ai didi

java - 如何让 Java rest api 调用立即返回而不是等待?

转载 作者:搜寻专家 更新时间:2023-10-31 08:32:03 24 4
gpt4 key购买 nike

@RequestMapping(value = "/endpoint", method = RequestMethod.POST)
public ResponseEntity<?> endpoint(@RequestBody final ObjectNode data, final HttpServletRequest request) {
somefunction();
return new ResponseEntity<>(HttpStatus.OK);
}


public somefunction() {
.....
}

在 Java spring Controller 中,我有一个端点。当这个端点被调用时,我希望它直接返回,而不是等待 somefunction() 完成。任何人都可以教我如何处理这个问题?

最佳答案

如果您使用的是 Java 8,则可以使用新的 Executor 类:

@RequestMapping(value = "/endpoint", method = RequestMethod.POST)
public ResponseEntity<?> endpoint(@RequestBody final ObjectNode data, final HttpServletRequest request) {
Executors.newScheduledThreadPool(1).schedule(
() -> somefunction(),
10, TimeUnit.SECONDS
);
return new ResponseEntity<>(HttpStatus.ACCEPTED);
}

这将:

  1. 安排 somefunction() 在 10 秒延迟后运行。
  2. 返回 HTTP 202 已接受(这是当您的 POST 端点实际上没有当场创建任何内容时您应该返回的内容)。
  3. 10 秒后运行 somefunction()

关于java - 如何让 Java rest api 调用立即返回而不是等待?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40906367/

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