[英]Springboot stream
我有一個 springboot API 正在處理后端的許多進程。 我需要將 stream 狀態發送到前端。 由於我是springboot的新手,任何人都可以幫助我如何實現這種情況。
注意 - 應用程序將來會被容器化,我不能為此使用任何雲服務。
由於 go 沒有太多內容,我會盡力而為:如果您使用的是 Log4j2,您可以簡單地使用SocketAppender(外部鏈接)
如果不是:我最近做了類似的事情,您需要以某種方式將您的日志轉換為 stream。 我建議使用此處找到的信息(非外部鏈接)
OutputStream Stream;
@GetMapping("/stream-sse-mvc")
public SseEmitter streamSseMvc() {
SseEmitter emitter = new SseEmitter();
ExecutorService sseMvcExecutor = Executors.newSingleThreadExecutor();
sseMvcExecutor.execute(() -> {
try {
Stream.map(sequence -> SseEmitter.event()
.id(""))
.event("EVENT_TYPE")
.data("String.valueOf(sequence)
.build());
emitter.send(event);
Thread.sleep(1000); //This does not need to be here
} catch (Exception ex) {
emitter.completeWithError(ex);
}
});
return emitter;
}
可能有更好的方法可以到達您的端點,但不知道您使用的是什么框架,這很難回答。 本質上,我們正在做的是將所有日志 output 捕獲到 stream 然后由 SSE 廣播。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.