fix: SSE连接关闭时机提前至容器关闭最早阶段
添加@Order(Ordered.HIGHEST_PRECEDENCE)确保最高优先级执行, 在Tomcat关闭前主动断开所有SSE连接,避免阻塞应用停止
This commit is contained in:
@@ -4,6 +4,8 @@ import com.youlai.boot.message.dto.OnlineUserDTO;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.context.event.ContextClosedEvent;
|
import org.springframework.context.event.ContextClosedEvent;
|
||||||
import org.springframework.context.event.EventListener;
|
import org.springframework.context.event.EventListener;
|
||||||
|
import org.springframework.core.Ordered;
|
||||||
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
import org.springframework.web.servlet.mvc.method.annotation.SseEmitter;
|
||||||
|
|
||||||
@@ -199,6 +201,7 @@ public class SseSessionRegistry {
|
|||||||
/**
|
/**
|
||||||
* 容器关闭时主动断开所有 SSE 连接,避免阻塞应用停止
|
* 容器关闭时主动断开所有 SSE 连接,避免阻塞应用停止
|
||||||
*/
|
*/
|
||||||
|
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||||
@EventListener(ContextClosedEvent.class)
|
@EventListener(ContextClosedEvent.class)
|
||||||
public void destroy() {
|
public void destroy() {
|
||||||
int count = emitterUserMap.size();
|
int count = emitterUserMap.size();
|
||||||
|
|||||||
Reference in New Issue
Block a user