Azure Service Bus中LockDuration的含义及消费场景相关疑问
Azure Service Bus LockDuration 疑问解答
疑问1:消费者会被锁定2分钟吗?
不会。LockDuration锁定的是被消费者获取的单条消息,而非消费者本身。消费者在持有这条消息锁的期间,完全可以正常接收和处理队列里其他未被锁定的消息。疑问2:即便消费者在几秒内处理完消息,也无法在2分钟内获取新消息吗?
当然可以。只要消费者处理完当前消息后,调用Complete方法确认处理完成,这条消息的锁会立即释放,消费者能马上继续获取队列中的其他消息,不需要等满2分钟的锁时长。疑问3:该消息至少2分钟内不会被其他消费者获取吗?
不一定。如果当前消费者在锁到期前,通过Complete(完成处理)、Abandon(放弃消息)或DeadLetter(移入死信队列)操作结束了消息锁定,这条消息会立刻回到可被获取的状态,其他消费者就能拿到它。只有当消费者既没处理完消息,也没有主动续锁,直到LockDuration超时,这条消息才会重新进入队列,供其他消费者获取。
内容的提问来源于stack exchange,提问作者Yeasin Abedin
相关产品推荐
相关产品推荐

