对于需要长时间工作的spring响应,是否有任何库或解决方案
我的项目中的一些过程需要几分钟(1~10分钟)。我使用SpringBootWeb提供了这个过程的结果。因此,我的API必须返回状态为(排队/运行/完成/失败)的响应。所以我通过ResponseEntity类实现了这种属性 我的请求流是对于需要长时间工作的spring响应,是否有任何库或解决方案,spring,spring-mvc,spring-boot,long-polling,spring-web,Spring,Spring Mvc,Spring Boot,Long Polling,Spring Web,我的项目中的一些过程需要几分钟(1~10分钟)。我使用SpringBootWeb提供了这个过程的结果。因此,我的API必须返回状态为(排队/运行/完成/失败)的响应。所以我通过ResponseEntity类实现了这种属性 我的请求流是 用户请求 javascript使用参数调用API 服务器使用请求的属性(参数、用户信息)生成作业 检查作业是否已存在。如果没有,则将作业放入队列。如果存在,则返回now作业状态(已完成作业具有流程的结果) QueueExecutor将新作业运行到处理组件,然后使线
在我的流程中,我有很多小问题,所以我想知道是否有任何通用或有用的库或解决方案。请给我一些建议。谢谢。我建议使用推送技术比传统的轮询方法更好 首先,您需要在Spring中创建一个消息处理控制器:
@Controller
public class GreetingController {
@MessageMapping("/hello")
@SendTo("/topic/greetings")
public Greeting greeting(HelloMessage message) throws Exception {
Thread.sleep(1000); // simulated delay
return new Greeting("Hello, " + HtmlUtils.htmlEscape(message.getName()) + "!");
}
}
然后为STOMP消息配置Spring:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/gs-guide-websocket").withSockJS();
}
}
在客户端,您应该根据哪个JS库注册/订阅消息
看看这些使用弹簧推动的示例: