KamoCRM

Quebrar uma dependência circular de feijão o STOMP live-session guard introduzido

FixMediaService
Enviado
23 de setembro de 2026 às 11:28 UTC
Autor
Kamo
Confirmação
723ad95

sessionAccessGuard do d47b471 no WebSocketConfig caiu a cada pod: Spring deve construir totalmente WebSocketConfig (a **************************** cada campo @Autowired resolvido) antes dele pode construir corretorMessagingTemplate eo resto do corretor infra-estrutura, que chama de volta para esta mesma classe configurarClientInboundChannel. SessionAccessGuard depende de SuporteTicketService, cuja própria cadeia (SupportAssignmentService -> Suporte Serviço de Notificação -> PushDispatchService -> PresenceService) needs um SimpMessagingTemplate - que neste aplicativo é corretorMessagingTemplate. Confirmado ao vivo: todas as réplicas do novo sucesso "brokerMessagingTemplate: Feijão solicitado está atualmente na criação" e CrashLoopBackOff'd; os dois ainda-correndo velho-construção pods continuou servindo ao longo, então este foi um preso Não é uma falha. SessionAccessGuard é agora @Lazy, então o campo mantém um proxy durante WebSocketConfig própria construção eo feijão real - e sua plena cadeia de dependência - só resolve no primeiro uso (a primeira sessão ao vivo SUBSCRIBE), muito depois que o corretor terminou de começar. Verificado por redeploying e leitura do log de inicialização do novo pod em vez de apenas seu estado de prontidão - esta classe de falha nunca toca um caminho de solicitação uma unidade teste pode chegar, que é exatamente por isso 1098 testes verdes não primeira vez; apenas uma atualização real do ApplicationContext faz.

Todas as alterações

Como o que você vê o transporte?

Comece com o plano gratuito e leia esta página novamente daqui a um mês, para saber mais sobre o que está disponível para você.

Comece grátis para sempreVer preços