2
我有一個控制器方法,它使用來自AMQP隊列的消息 - 但我不想確認這些消息,直到我確信做出http請求的客戶端可以得到數據(以便在離開控制器方法後http請求失敗時不會丟失數據)。如何在完成HTTP請求後正確確認AMQP消息
到目前爲止,我所能找到的是,您可以使用Spring攔截器來實現「afterCompletion」,它將在請求成功完成後調用。但這感覺像是矯枉過正?
我有一個控制器方法,它使用來自AMQP隊列的消息 - 但我不想確認這些消息,直到我確信做出http請求的客戶端可以得到數據(以便在離開控制器方法後http請求失敗時不會丟失數據)。如何在完成HTTP請求後正確確認AMQP消息
到目前爲止,我所能找到的是,您可以使用Spring攔截器來實現「afterCompletion」,它將在請求成功完成後調用。但這感覺像是矯枉過正?
您http
請求已經通過將代碼承認HTTP調用下面... 像如果出現異常,比不承認 別人承認
channel.basicAck(DeliveryTag, false);
確定完成後,可以確認,這是我在想什麼 - 但是我必須通過跟蹤收到的所有消息來自己做這件事,Spring AMQP不會爲我做這件事,對吧? –
不,你可以註冊一個像SimpleMessageListenerContainer這樣的異步列表器,將messageListner傳遞給它。每當有消息出現,它就會調用messagelistner的消息,你將不得不寫入登錄,只能在這裏找到它http://static.springsource.org/彈簧AMQP /參考/ HTML /採樣apps.html#你好-世界異步 –