約 470.000 レコードのデータベースからすべてのレコードを取得するラバのフローがあります。これらの記録はセールスフォースに入れなければなりません。Salesforce では、反復ごとに 200 レコードしか挿入できません! 残念ながら、これらすべてのレコードを 1 回の db 呼び出しで取得することはできません。マシンのメモリが過負荷になります。したがって、私のアイデアは、Mule で「foreach」コンポーネントを使用して、db 呼び出しから取得するレコードが 200 未満になるまでループし続けることでした。
これらはどのように達成できますか?
私の設定フローは次のとおりです。
<foreach batchSize="200" doc:name="For Each" counterVariableName="foreachCount">
<jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="select200records" queryTimeout="-1" connector-ref="postgresConnector" doc:name="Database">
<jdbc-ee:query key="select200records" value="select * from parties limit 200 offset #[variable:offset]"/>
</jdbc-ee:outbound-endpoint>
<set-variable variableName="dbPayload" value="#[payload]" doc:name="Variable"/>
<scripting:component doc:name="Script">
<scripting:script engine="jython"><![CDATA[result = len(payload)]]></scripting:script>
</scripting:component>
....