我們有這種設置,我們調用webservice來創建隊列,並從響應接收隊列名稱。Spring amqp:檢測到關機並重新連接到另一個隊列
然後我們設置一個SimpleMessageListenerContainer並在那裏設置隊列名稱,然後啓動它。
但是,時不時,隊列被刪除 - 導致「404無法聲明隊列XXXXXXXXX」錯誤。在這些情況下,我需要再次調用Web服務,並將新的QueueName添加到SimpleMessageListenerContainer,然後刪除舊的。
我想通過處理這個問題的唯一方法是創建一個自定義的CachedConnectionFactory並覆蓋shutdownCompleted方法。
但是,當SimpleMessageListenerContainer切換時,shutdownCompleted似乎也會觸發,因此它會循環。發送到shutdownCompleted的ShutdownSignalException似乎沒有任何區別,如果觸發器是從服務器或處理新隊列的客戶端的外部,所以我無法弄清楚如何跳過「秒」的處理。
那麼當服務器殺死隊列時,檢測和運行自定義處理的常用方法是什麼?