Jan 22nd, 2013, 02:57 PM
How to stop Inbound gateway from reading new messages but finish processing old ones
I need to be able to stop consuming new messages from request-channel, but still be able to finish work in progress and send it to reply-channel. Is it possible by calling stop() method or will it stop the listener on the reply channel as well?
<int-amqp:inbound-gateway request-channel="incomingMessages" ..................
What is the preferred way to accomplish this?
Can I just define a listener on the incoming channel and disable reading by returning false from implemented preReceive(MessageChannel channel) method? Will the messages stay in the queue if the channel's listener returns false from preReceive()? Are there any negative effects related to defining the listener on the gateway?