I am not sure this is possible, but - is it possible to extract the most recent N messages from a queue?
So, if I had downloaded 20,000 & then 5,000 new ones arrived afterwards; then this would avoid having to download all of the previous ones again.