我的项目中的某些过程需要几分钟(1〜10分钟)。并且我使用Spring Boot Web提供了此过程的结果。因此我的API必须返回状态为(排队/正在运行/完成/失败)的响应。所以我通过ResponseEntity Class来实现这种属性。
我的请求流程是
QueueExecutor将新作业运行到处理组件,然后使该线程定期检查。
在我的流程中,我有很多小问题,所以我想知道那里是否有任何常规或有用的库或解决方案。请给我建议。谢谢。
答案 0 :(得分:1)
我建议使用推技术要优于传统的轮询方法more information。
首先,您需要在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库注册/订阅消息。
看看这些使用spring进行推送的示例: