우리는 대기열을 생성하고 응답에서 대기열 이름을 수신하기 위해 webservice를 호출하는이 설정을 사용합니다.Spring amqp : 종료를 감지하고 다른 대기열에 다시 연결
그런 다음 SimpleMessageListenerContainer를 설정하고 큐 이름을 설정 한 다음 시작합니다.
그러나 때때로 큐가 삭제되므로 "404는 큐 XXXXXXXXX을 선언 할 수 없습니다."오류가 발생합니다. 이 경우 webservice를 다시 호출하고 SimpleMessageListenerContainer에 새 QueueName을 추가 한 다음 이전 QueueName을 제거해야합니다.
내가 처리 할 수있는 코드를 알아내는 유일한 방법은 사용자 지정 CachedConnectionFactory를 만들고 shutdownCompleted 메서드를 재정의하는 것입니다.
그러나 SimpleMessageListenerContainer가 전환 될 때 shutdownCompleted가 트리거되어 루프에 고정됩니다. shutdownCompleted로 보내지는 ShutdownSignalException은 트리거가 서버 또는 새 큐를 처리하는 클라이언트로부터 외부 인 경우에는 전혀 달라 보이지 않으므로 "두 번째"처리를 건너 뛰는 방법을 알아낼 수 없습니다.
그래서 서버가 대기열을 죽이면 사용자 지정 처리를 감지하고 실행하는 일반적인 방법은 무엇입니까?