<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; "><div>Our clusters support apps that do work periodically, e.g. Every few seconds or minutes, typically analyzing/reporting the state of other apps.</div><div><br></div><div>We run an identical instance of each app connected to each node of the cluster. The apps each subscribe to a 'token' mirrored queue which is seeded with a single message.</div><div><br></div><div>One app gets the message, does its work, waits for the appropriate interval, and then republishes the token message to the queue. The next app gets the message - they proceed in a round robin fashion.</div><div><br></div><div>Today I am reviewing and refactoring this logic, and I wonder if it would be better to keep a single token message and just nack it instead of rewriting. Nacking is a little simpler.</div><div><br></div><div>However, I see in the documentation for BasicReject that the broker may not want to deliver the same message within the same channel context; does this hold for BasicNack as well?</div><div><br></div><div>In a cluster with one node, the above pattern using rewrite works fine. Would it still work using nack or would the app have to close the channel and resubscribe using a new one (probably too expensive/messy)?</div><div><br></div><div>Cheers,</div><div>Michael</div></body></html>