博客文章http://farazdagi.com/blog/2014/rest-long-running-jobs(以及引用的资源)建议在使用REST等待长时间运行的作业时使用以下方案
我知道我可以返回,例如来自方法的CompletableFuture
,但这将阻止请求,直到将来完成。在Spring MVC中是否有对此类行为的支持,或者我是否可以通过任何方式增强Spring MVC来实现此行为(例如,实现org.springframework.web.method.support.HandlerMethodReturnValueHandler
?)
答案 0 :(得分:0)
要实现使用Spring在该博客文章中建议的行为,您应该不从控制器返回CompletableFuture
,除非该未来已经完成(状态代码应为{{1}在这种情况下)。
否则,您应该只使用201
标头(包含创建任务URL )和Location
状态代码构建一个空响应,并返回该响应,如果202
为您的未来返回isDone()
。