Mule Flow 是否会在引发任意数量的异常后停止处理消息



我有一个使用 Mongo 连接器在 Mongo 数据库中插入对象的流,该连接器使用连接器提供的MongoClientImpl。 此客户端有一行,该行尝试将_id强制转换为 ObjectId,然后在插入内容提交到数据库后将该值作为字符串返回给用户。 据我所知,此行不会影响是否插入对象,但在尝试将字符串强制转换为 ObjectId 时确实会引发异常。

我的流量正在投掷数百ClassCastException。 它似乎也没有像我预期的那样处理那么多的插入。 我预计会看到数以万计的文档,但流程只插入了 136 个文档。

在流停止处理给定消息之前,Mule 的 DefaultMessagingExceptionStrategy 可以抛出和捕获的异常数量是否有限制?

答案是否定的,但您可以实现一些自定义逻辑并停止流。之后可能需要手动启动它,这就是我的做法:

  • 使用对象存储模块来计算给定异常的发生率。
  • 在以编程方式停止流的已定义数量的事件后,一个选项是类似于#[groovy:<flowName>.stop()],因为 groovy 可以直接访问注册表。
  • 发送电子邮件通知,以便了解错误(对生产特别有用)。

最新更新