【问题标题】:how to send email when maxretries reached in nservicebus MSMQ在 nservicebus MSMQ 中达到 maxretries 时如何发送电子邮件
【发布时间】:2011-02-18 03:15:06
【问题描述】:

我有一个处理消息的 .net 服务。对于任何失败,我使用 log4net 并写入文件。我为此添加了一个 SMTP 附加程序。问题是我只想在出现问题时发送一封电子邮件。我的 app.config 中的 MaxRetries 设置为 5,这是正确的,log4net 文件中记录了 5 个错误,但也发送了 5 封电子邮件。

有什么方法可以控制最大重试次数并在达到该值时触发我的电子邮件?

感谢您的帮助。

【问题讨论】:

    标签: .net msmq nservicebus


    【解决方案1】:

    添加一个从错误队列中读取的常规 nservicebus 端点。为 IMessage 添加一个处理程序,并在该处理程序中添加对 smtpclient.send 的调用。

    我有一篇文章试图解释可能感兴趣的基于消息的系统的错误处理: http://andreasohlund.net/2010/03/15/errorhandling-in-a-message-oriented-world/

    希望这有帮助!

    【讨论】:

    • 您好,感谢您的回复。我已经使用 smtpclient send 但是,问题是如果最大重试次数设置为 5 则发送 5 封电子邮件。无论执行多少次重试,我都只想发送一封电子邮件。
    • 这就是为什么你应该监控错误队列并且只在有消息时才发送邮件。在执行了所有配置的重试后,消息将被放入错误队列中。这有意义吗?
    • 啊,一分钱掉了。谢谢你,我会看看。干杯。
    • 好的,我的理解是这样的: - 你有一个端点监视特定消息类型的错误队列 - 收到所述消息类型后,你会做一些事情,比如发送电子邮件或通知最后一点,消息不会从错误队列中取出,因此无法返回到它的源队列吗?
    • 将端点配置为审计到“最终”错误q:
    猜你喜欢
    • 1970-01-01
    • 2021-07-22
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多