gpt4 book ai didi

Azure 服务总线 - 取消的预定消息重新排队

转载 作者:行者123 更新时间:2023-12-03 04:42:39 24 4
gpt4 key购买 nike

我正在使用 Azure 服务总线的最新 Java 绑定(bind) (v3.1.3):https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/servicebus

当我创建新的队列客户端、安排消息并取消它时...

QueueClient sendClient = new QueueClient(new ConnectionStringBuilder(connectionString, queueName), ReceiveMode.PEEKLOCK);
long sequenceNumber = sendClient.scheduleMessage(message, instant);
...
sendClient.cancelScheduledMessage(sequenceNumber)

...代码似乎按预期工作:事件消息计数变为 0。但是一旦计划的消息达到了它应该计划的时间(我在 10 秒和 100 秒中进行了测试) future),消息有时会使用新的序列号重新排队。我在安排或取消消息时没有收到任何错误。我可以采取什么措施来确保已取消的消息不会重新排队?

最佳答案

根据我自己的测试,我发现在预定消息发送到服务总线队列后的短时间内取消服务总线消息并不总是按预期处理取消。一般来说,我们只讨论几秒钟,但行为并不完全一致。

我的结论是,在计划的消息排队到注册同一消息的取消之间会有一些延迟,这意味着在将计划的消息发送到队列后几乎立即取消它并不总是会阻止它的运行。已处理。

因此,在我的环境中,我必须提供自己的回退功能来检查服务总线消息中的其他自定义属性,因此当它返回到我的订阅者应用程序时,我使用 IF 语句来检查自定义属性的状态所以我可以选择是否忽略它并且不再处理任何内容。

这确实让我困惑了一段时间,因为我的环境相当复杂,我认为我的代码中某个地方存在一些问题,最后,一旦我考虑到上述异常情况并开始了解如何服务总线正在响应计划消息取消,我能够克服这个问题。

关于Azure 服务总线 - 取消的预定消息重新排队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59539500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com