如何使用Azure Service Bus HTTP API对消息进行死信

时间:2013-12-10 14:35:46

标签: azure azureservicebus

我正在尝试与Azure Service Bus集成以执行代理消息传递。我以前成功使用过托管的.NET API,但这次我需要使用HTTP API。

处理邮件时,如果我确定邮件有毒(即永远无法成功处理),我想将邮件移至死信队列。

在托管API中,我调用BrokeredMessage.DeadLetterAsync(),它允许我指定对邮件进行死信的原因,并将其作为原子操作移至死信队列。

在阅读HTTP API documentation之后,我发现并调用了操作来执行其他操作,例如peek-lock,删除锁定的消息或放弃锁定,但我找不到明确的操作死信的信息。

此操作是否存在于HTTP API中?

3 个答案:

答案 0 :(得分:6)

通过http / rest API不支持今天的DeadLetter操作。我们将在即将发布的版本中添加该支持。当达到任何消息的最大传送计数并且仍然没有完成时,如果为队列/订阅启用了它,它将自动解冻。上面提到的连接模式适用于.NET API,其中SBMP服务总线协议通过http / port80连接进行隧道传输,因此它不使用REST API。

答案 1 :(得分:1)

我也看了一下REST Api Reference,但我找不到办法。这是一个比较表,显示了通过REST Api提供的功能以及.NET SDK提供的功能。

http://msdn.microsoft.com/en-us/library/windowsazure/hh780771.aspx

这听起来很奇怪,因为我认为.NET SDK会调用REST API资源。

我相信您必须对邮件应用Peek-Lock,并在处理后删除它。

偷看消息:

http://msdn.microsoft.com/en-us/library/windowsazure/hh780735.aspx

删除:

http://msdn.microsoft.com/en-us/library/windowsazure/hh780768.aspx

答案 2 :(得分:1)

即使我没有找到任何相关文档,您也可以通过以下方式访问死信:

的https:// {servicebusnamespace} / {主题} /订阅/ {subscriptionname} / $ DeadLetterQueue中/消息/头