我正在尝试与Azure Service Bus集成以执行代理消息传递。我以前成功使用过托管的.NET API,但这次我需要使用HTTP API。
处理邮件时,如果我确定邮件有毒(即永远无法成功处理),我想将邮件移至死信队列。
在托管API中,我调用BrokeredMessage.DeadLetterAsync()
,它允许我指定对邮件进行死信的原因,并将其作为原子操作移至死信队列。
在阅读HTTP API documentation之后,我发现并调用了操作来执行其他操作,例如peek-lock,删除锁定的消息或放弃锁定,但我找不到明确的操作死信的信息。
此操作是否存在于HTTP API中?
答案 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中/消息/头