Well you don't need any sleep since QueueChannel.receive() also comes with timeout. For example:
Code:
QueueChannel channel = context.getBean(...);
Message<?> message = channel.receive(10000); //will wait for message for up to 10 seconds before returning null
Also, you can look at MessagingTemplate which has a lot of send/receive type methods: http://static.springsource.org/sprin...annel-template
Also the gateway is yet another approach which allows you completely POJO way of dealing with request/reply message flows: http://static.springsource.org/sprin...#gateway-proxy