首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure ServiceBus ReceiveDeferredMessageAsync()失败

Azure ServiceBus ReceiveDeferredMessageAsync()失败
EN

Stack Overflow用户
提问于 2020-10-02 21:58:17
回答 1查看 286关注 0票数 0

我正在尝试在Azure ServiceBus中实现“消息延迟”模式,但在让一个基本的示例正常工作时遇到了问题。我使用的是Microsoft.Azure.ServiceBus v5.0.0,并遵循了this SO questionthis Microsoft Documentation的建议。

代码语言:javascript
复制
// Send a message
var sender = new MessageSender("my_sb_connection_string", "my_queue_name", RetryPolicy.Default);
await sender.SendAsync(new Message());

// Receive the message, defer it and then receive the deferred message
var receiver = new MessageReceiver("my_sb_connection_string", "my_queue_name", 
                                   ReceiveMode.PeekLock, RetryPolicy.Default);

var msg = await receiver.ReceiveAsync();

await receiver.DeferAsync(msg.SystemProperties.LockToken);

var deferredMsg = await receiver.ReceiveDeferredMessageAsync(msg.SystemProperties.SequenceNumber);

每次我调用ReceiveDeferredMessageAsync()时,都会得到一个异常:

代码语言:javascript
复制
Microsoft.Azure.ServiceBus.MessageNotFoundException: Messages not found. One or more sequence numbers missing. 

我确信我做错了一些简单的事情,但我看不出可能是什么。

EN

回答 1

Stack Overflow用户

发布于 2020-10-02 23:50:51

问题原来是我将队列的“最大传递计数”设置为1-消息进入DLQ (显然)是因为它达到了最大传递计数。

将Max Delivery Count更改为大于1的值允许` `DeferAsync()调用正确地将邮件标记为延迟。

对我来说,这似乎是一个错误。https://github.com/Azure/azure-service-bus/issues/375

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64172829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档