mule 4 窃听器的替代品是什么

mule 4 what's the replacement for wiretap

我有一个 mule 4 批处理作业,它基本上从 sftp 服务器和 t运行 读取一个大的 xml 文件,然后在填充数据库 table 之前对记录进行格式化和批处理。该文件相当大。我需要在每天加载数据之前删除 table。我曾经在 sftp 之后立即在 mule 3.8.5 中使用带有 db delete 操作的窃听器,并且曾经运行良好。由于 mule 4 不再提供窃听功能,因此如何实现。我尝试将 sftp 内容设置为一个变量,然后执行数据库删除,然后将有效负载设置为该变量。我运行陷入错误。我还认为将内容保存到变量是低效的,因为文件的内容非常大。我可以有一个单独的流程和一个单独的调度程序,但似乎效率不高。 scatter gather 是否有意义,一个路由将删除 db table 记录,另一个路由将读取文件内容并按上述说明进行操作。任何帮助将不胜感激。

分散收集将是一种更好的选择方法,您可以将删除操作放在一个节点中并将其包装在异步范围内,正如您提到的其他路由将读取文件内容。就线程消耗而言,与 Wiretrap 相比,这将更加有效。

是的,将内容保存到变量中是不可取的,因为您使用的是 mule4,流现在是可重复的,即您可以多次读取流。这样就可以直接在scatter gather中访问payload了。

请注意,大多数 Mule 4 组件在“高级”选项卡中都有“目标”配置,您可以在其中配置变量以及需要从响应中提取什么到该变量中。

只需在数据库操作(DELETE 或 TRUNCATE)上设置目标,有效负载将保持不变