@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);}
这将:
>安排somefunction()在延迟10秒后运行.
>返回http 202已接受(当您的POST端点实际上没有在现场创建任何内容时,应该返回此值).
> 10秒后运行somefunction(). 总结
以上是内存溢出为你收集整理的如何让Java rest api调用立即返回不等?全部内容,希望文章能够帮你解决如何让Java rest api调用立即返回不等?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)