一.应用背景 今天做一个需求,要将RabbitMQ中的任务取出并执行,为防止任务执行期间出错,设置NO_ACK=FALSE标志,这样.一旦任务没有应答的话,相应的任务就会被RabbitMQ自动Re-Queue,避免丢失任务.然而.由于任务执行时间较长,通常需要五.六分钟,甚至更长:我们都知道一旦一个任务被取出执行,该任务就从Ready状态更改成Unacked状态.如图所示: 当这个任务执行完之后,程序将向RabbitMQ发送ACK消息确认,RabbitMQ在收到ACK消息后,会将该任务移出队列: