You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Mule 4.5.0 Kernel流式读取大文本文件的行内容

Mule 4.5.0大文本文件逐行流式处理实现

需求

在Mule 4.5.0环境下,处理1GB-2GB的大文本文件,要求按换行符\n逐行读取,每行生成独立的Mule消息进行后续业务处理。

实现代码

<flow name="Process-Flow" doc:id="5a0e9933-95f2-45d5-9505-4bc59bedfcd4">
    <file:read doc:name="Read" doc:id="23a36b5f-7912-4185-a093-4a3472b2e06a" config-ref="File_Config" path="#[p('filename')]">
        <non-repeatable-stream/>
    </file:read>
    
    <foreach doc:name="For Each" doc:id="95f0bcdf-31ed-4842-93c5-bd2f56d303e0" collection="#[output application/csv deferred=true --- payload map (value,index)-> value]">
        <!-- 在此处添加每行数据的业务处理逻辑 -->
    </foreach>
    <logger level="INFO" doc:name="Logger" doc:id="43859fc3-6243-426c-9e21-8145851960ad" message="Done processing #[vars.filename]"/>
</flow>

关键实现要点

  • 文件读取阶段配置<non-repeatable-stream/>,确保以流式方式读取文件,避免将整个大文件加载到内存引发性能问题
  • 依据Mule官方规范,仅application/csv、application/json、text/xml三种格式支持流式处理,因此DataWeave必须指定这三类输出格式之一
  • DataWeave脚本中必须添加deferred=true参数,开启延迟处理机制,实现真正的逐行流式遍历,而非一次性加载所有数据到内存
  • 通过foreach作用域遍历流式集合,为每行数据生成独立的Mule消息

内容的提问来源于stack exchange,提问作者William

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:27:36