Java spring mvc中的长轮询(异步)
我的操作需要30分钟来处理rest调用请求调用的操作。我想给客户端一个即时响应,告诉操作正在进行,处理应该在另一个线程中进行,解决这个问题的最佳方法是什么,延迟结果是唯一的方法。30分钟是很长的时间。我建议您使用Java spring mvc中的长轮询(异步),java,spring-mvc,asynchronous,Java,Spring Mvc,Asynchronous,我的操作需要30分钟来处理rest调用请求调用的操作。我想给客户端一个即时响应,告诉操作正在进行,处理应该在另一个线程中进行,解决这个问题的最佳方法是什么,延迟结果是唯一的方法。30分钟是很长的时间。我建议您使用websockets来推送进度更新和操作状态 由于您提供的是rest服务,另一种方法可能是立即将“已接受”(202)或“已创建”(201)返回给客户端,并提供指向另一个服务的链接,该服务将提供有关处理进度状态的更新。这样,客户端就可以自由决定是轮询服务器以获取更新,还是只向用户提供一个“
websocket
s来推送进度更新和操作状态 由于您提供的是rest服务,另一种方法可能是立即将“已接受”(202)或“已创建”(201)返回给客户端,并提供指向另一个服务的链接,该服务将提供有关处理进度状态的更新。这样,客户端就可以自由决定是轮询服务器以获取更新,还是只向用户提供一个“更新状态”按钮 使用消息队列(ActiveMQ、Redis)
Spring4.2支持服务器发送的事件