簡體   English   中英

Springboot stream

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM