提高包含DB事务的Mule流的性能

提高包含DB事务的Mule流的性能,mule,mule-studio,Mule,Mule Studio,我在mule中有一个流,它执行一个查询以在一批中检索100条记录。然后,它将记录传递到foreach中,在该循环中,每个记录在其自己的事务中进行处理。如果一个记录的事务失败,这不会影响foreach循环中的其他记录,因为它们应该继续自己的执行 这非常有效,只是它连续执行每个记录的事务。我想让多个事务同时工作(在一个限制范围内,比如说一次4个事务),以加快流程 <foreach doc:name="For Each"> <ee:multi-transactional acti

我在mule中有一个流,它执行一个查询以在一批中检索100条记录。然后,它将记录传递到foreach中,在该循环中,每个记录在其自己的事务中进行处理。如果一个记录的事务失败,这不会影响foreach循环中的其他记录,因为它们应该继续自己的执行

这非常有效,只是它连续执行每个记录的事务。我想让多个事务同时工作(在一个限制范围内,比如说一次4个事务),以加快流程

<foreach doc:name="For Each">
  <ee:multi-transactional action="ALWAYS_BEGIN" doc:name="Transactional">
    EXECUTE A NUMBER OF DIFFERENT QUERIES WITHIN THE TRANSACTION
  </ee:multi-transactional>
</foreach>

在事务中执行许多不同的查询
我想我可以使用异步,但我需要在流程结束时关联所有内容

<foreach doc:name="For Each">
  <ee:multi-transactional action="ALWAYS_BEGIN" doc:name="Transactional">
    EXECUTE A NUMBER OF DIFFERENT QUERIES WITHIN THE TRANSACTION
  </ee:multi-transactional>
</foreach>
编辑:我使用的解决方案

<foreach doc:name="For Each"  batchSize="50" >
  <all enableCorrelation="IF_NOT_SET" doc:name="All">
    <async doc:name="Async">
      <foreach doc:name="BatchedForEach">   
        <ee:multi-transactional action="ALWAYS_BEGIN" doc:name="Transactional">
          EXECUTE A NUMBER OF DIFFERENT QUERIES WITHIN THE TRANSACTION
        </ee:multi-transactional>     
      </foreach>
      <flow-ref name="completeBatch" />
    </async>
   </all>
</foreach>

<sub-flow name="completeBatch">
  <collection-aggregator doc:name="Collection Aggregator"/>
  <combine-collections-transformer />
</sub-flow>

在事务中执行许多不同的查询
Foreach batchSize=“n”,然后为每个有效负载分叉并连接[0..n-1]


Foreach batchSize=“4”,然后为每个有效负载[0..3]分叉并连接?谢谢,你让我走上了正轨。如果你添加你的评论作为答案,我会将其标记为答案。