我在同一个config-xml中有一些4-5流,我希望以同样的方式处理这些流中的错误,以避免冗余。所以我做的是..。创建了一个全局异常策略,并将其用于引用所有流。但这样做有更好的选择吗?就像复制子流中流的一些消息处理器,然后将异常策略附加到这些子流中一样?
发布于 2015-10-30 03:30:41
没有比这更好的办法了。子流不允许异常处理程序。
当所有流共享一个消息源时,通常使用的是将异常处理程序与消息源放在流上,而在其他消息源上不使用flow-ref调用异常处理程序。
发布于 2015-10-31 15:13:52
你有几个选择。您可以定义默认的全局异常策略,以及一个或多个全局异常策略。正如您注意到的,这可能有些不灵活,但是我们有一些模式可以允许适当程度的灵活性和重用,而不会重复流逻辑。
您可以使用私人流动封装共享流逻辑,该逻辑也共享相同的错误处理。私有流只是一个没有消息源的流。如果私有流具有异常策略,则将使用它来代替调用流的异常策略。
您可以模块化错误处理代码的另一种方法是在异常策略中使用flow-ref。也许您有不同类型的错误,只需要共享一些行为,例如以某种方式记录错误,并向死信队列发送消息。每个异常策略都可以完成自己的处理,将其消息和/或异常转换为公共模型,然后流-引用共享行为。
https://stackoverflow.com/questions/33427664
复制相似问题