Service Bus队列接收器调用close()时是否会放弃处理中消息?
Service Bus队列接收器调用close()后的消息处理行为
当你调用subscribe返回对象的close()方法时,行为分两种情况,取决于你消息处理的完成模式:
- 自动完成模式(默认):接收器会先停止接收新消息,但会等待当前正在处理的消息执行完处理逻辑,自动完成这条消息后,再彻底关闭订阅,不会放弃正在处理的消息。
- 手动完成模式:接收器会立刻停止接收新消息,但不会主动处理正在运行的消息——既不会自动完成,也不会自动放弃。
close()不会等待当前处理逻辑结束,会直接启动关闭流程;如果后续尝试手动完成消息,可能因接收器已关闭而失败,未处理的消息会在锁到期后回到队列。
内容的提问来源于stack exchange,提问作者mkl
相关产品推荐
相关产品推荐

