【发布时间】:2020-09-02 13:53:39
【问题描述】:
我正在开发一个 mule 应用程序,该应用程序从数据库中获取数十万条记录,使用 dataweave 进行映射以更改传入记录的结构并将数据插入 Salesforce。我遵循的步骤是:
- 一次从 db 中获取所有记录 (> 100k) 并将其存储在 mule 变量“vars.fetchedRecords”中
- 为每个组件使用 10k 批量处理这些“fetchRecords”
- 在每个内部,我都使用 Dataweave 转换器,我使用 var 来保存新的映射对象列表
如何优化这个过程?在变量中保存这么多记录会影响应用程序的性能吗?有没有更好的方法?
【问题讨论】:
-
使用批处理作业docs.mulesoft.com/mule-runtime/4.3/batch-processing-concept,for-each 是顺序的,单线程的,批处理是并行的,多线程的。
-
好的。我会尝试。另一个问题:mule 将 vars 存储在 RAM 或 Disk Storage 的什么位置?
-
变量存储在 RAM 中。