作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 mule 应用程序,它从数据库中获取数十万条记录,使用 dataweave 绘制 map 以更改传入记录的结构,并将数据插入 Salesforce。我遵循的步骤是:
最佳答案
看起来没有必要在内存中保留记录。你只需要处理它们。对?
其中一种方法是使用水印。标记您在数据库中所做的事情,稍后再处理其余部分。 Mule 内置了 capabailiteis 来处理水印。
https://docs.mulesoft.com/connectors/object-store/object-store-to-watermark
更简单的方法(仍然分步处理记录)是找出一些顺序(比如时间),按照这个顺序处理某个子集(比如一年),然后根据你已经转移到的数据开始下一步目的地。这是更好的方法,因为如果过程失败,您可以稍后根据已经传输的数据继续它。这样的分页进程也可以随时间、服务器、多线程分布。
节省内存的最好方法不是使用变量,而是使用有效载荷。默认情况下,Mule 的有效载荷是一个流,因此它实际上并不重要数据有多大——它会自动流经流处理的针耳。尽量避免在变量/内存中存储即使是流的一小部分。最终这个存储会溢出。
关于dataweave - 骡子 4 : Memory Management : how to manage variables having huge data for example 300 Mb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61841257/
我是一名优秀的程序员,十分优秀!