好的,所以我一直试着把头脑包裹起来 - >死信队列 - >死信队列的毒性子队列 - > ?
现在,到目前为止as I understand,如果消息处理失败或者接收方不支持对消息的操作,则可以将消息发送到毒物队列。 Most of the articles I've found显示使用与主服务相同的合同实施毒药服务。如果错误是合同不支持提供的消息,那么是否会将有害消息队列的消息放入毒性消息队列中?
拥有一个可以处理毒药队列中任何东西的处理程序会不会更有意义?下面假设一个WCF消息,它可能也不安全(并且完全未经测试),但有没有办法让傻瓜式毒物队列处理?我越是想通过排队的边缘情况进行思考,我就越觉得拥有一个能够处理所有可能性的完整系统是不可能的。
[OperationContract(IsOneWay = true, Action = "*")]
[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
public void CatchAll(Message message)
{
// Log somewhere?
}
另一个想法是让一个触发器将所有来自毒药队列的消息移回死信队列再次处理 - 这可能会再次中毒并无限循环。
我想具体的问题是..人们如何在死信队列中处理毒药信息?一般的问题是 - 你如何处理MSMQ中的所有情况?
答案 0 :(得分:1)
据我所知,MsmqMessage<T>
类型可以与任何WCF msmq绑定一起使用。
因此,如果您指定接收类型MsmqMessage<String>
,则应涵盖所有基础。您将收到一个字符串的消息。你如何处理字符串中的内容是另一个故事......