将死信中的消息移回主题
Moving messages from dead letter back to topic
背景:
我可以从订阅的死信队列中读取消息。我将它们收集在 List
中并设置 receiver.complete(message.getLockToken())
,这会从 DLQ 中删除消息。
稍后,我遍历了从 DLQ 收集的消息列表,并将它们发回主题。在将它们放入 List
时,我确保在放入之前创建一个新的 Message(或 BrokeredMessage)对象。
这对我自己的个人帐户来说一切都很好。我看到数字上升了。我也可以用另一种方法很好地阅读它们。
问题:
当我连接到我公司的主题时,我不知道消息在哪里结束?他们不去任何订阅。而且我没有看到任何数字上升(活动计数、死信计数等)。
问题:
这会不会是因为没有规则能够处理这些消息,所以它们被自动清除了?有这种可能吗?
这个解决方案很简单,已经在 Whosebug 上传播了。
当我创建新消息对象 new Message(oldMessage)
时,它复制了旧消息的所有属性,包括 DeadLetterReason
和 DeadLetterErrorDescription
。您可以通过调用此消息 msg.getProperties()
.
来获取属性
这就是消息进入以太坊的原因。我阻止了它复制过来,这解决了问题。
顺便说一下,我已经找到了我实际问题的答案 as suggested by @PramodValavala-MSFT
这是我最初的问题:这会不会是因为没有规则能够处理这些消息,所以它们被自动清除了?有这种可能吗?
背景:
我可以从订阅的死信队列中读取消息。我将它们收集在 List
中并设置 receiver.complete(message.getLockToken())
,这会从 DLQ 中删除消息。
稍后,我遍历了从 DLQ 收集的消息列表,并将它们发回主题。在将它们放入 List
时,我确保在放入之前创建一个新的 Message(或 BrokeredMessage)对象。
这对我自己的个人帐户来说一切都很好。我看到数字上升了。我也可以用另一种方法很好地阅读它们。
问题:
当我连接到我公司的主题时,我不知道消息在哪里结束?他们不去任何订阅。而且我没有看到任何数字上升(活动计数、死信计数等)。
问题:
这会不会是因为没有规则能够处理这些消息,所以它们被自动清除了?有这种可能吗?
这个解决方案很简单,已经在 Whosebug 上传播了。
当我创建新消息对象 new Message(oldMessage)
时,它复制了旧消息的所有属性,包括 DeadLetterReason
和 DeadLetterErrorDescription
。您可以通过调用此消息 msg.getProperties()
.
这就是消息进入以太坊的原因。我阻止了它复制过来,这解决了问题。
顺便说一下,我已经找到了我实际问题的答案
这是我最初的问题:这会不会是因为没有规则能够处理这些消息,所以它们被自动清除了?有这种可能吗?