Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading mule中每个vs散射聚集的平行_Multithreading_Esb_Anypoint Studio_Dataweave_Mule4 - Fatal编程技术网

Multithreading mule中每个vs散射聚集的平行

Multithreading mule中每个vs散射聚集的平行,multithreading,esb,anypoint-studio,dataweave,mule4,Multithreading,Esb,Anypoint Studio,Dataweave,Mule4,我有多个记录: { "item_id":1", key1: "data1" } { item_id:2 key1: "data1" } { item_id:2 key1: "data1" } { item_id:1 key1: "data1" } 我不想按顺序处理它们。可以有200多条记录。我应该使用为每个平行或散射聚集处理它们吗。根据我的要求,哪种方法最好。 我不需要累积响应,但如果在处理时出现异常(根据if条件为每条记录点击一个api)任何一条记录,其他记录的处理必须

我有多个记录:

{
 "item_id":1",
 key1: "data1"
}
{
  item_id:2
 key1: "data1"
}
{
  item_id:2
 key1: "data1"
}
{
  item_id:1
 key1: "data1"
}
我不想按顺序处理它们。可以有200多条记录。我应该使用为每个平行散射聚集处理它们吗。根据我的要求,哪种方法最好。
我不需要累积响应,但如果在处理时出现异常(根据if条件为每条记录点击一个api)任何一条记录,其他记录的处理必须不受影响。

为什么不使用VM模块,是否将集合拆分为单个记录并将它们推送到VM队列?然后,使用另一个流,VM侦听器(并行地)拾取各个记录并处理它们。
这里有更多的细节:

分散聚集适用于路由数量固定的情况。想象一下,一条路径发送到人力资源系统,另一条路径发送到会计系统


要处理数量可变的记录,您应该为每个记录使用并行模式。

使用foreach异步模式、并行模式或jms模式。Scater gather为所有线程接收一个有效负载,您将无法循环

您好,感谢您回答我的问题。我只需要检查一个记录的字段,并为每个记录点击一个api,我必须对所有记录都这样做。您是否仍然认为使用VM连接器是更好的选择?如果可能的话,您可以分享一个示例流来说明VM连接器的工作情况吗?我认为VM会更好,特别是因为您不关心响应。今晚晚些时候我将分享一些东西。谢谢,我将等待您的回复。这里有一个指向我的google drive的链接,它说明了您的问题的解决方案,您可以使用VM模块并行处理记录:嗨,您能给我访问权限吗?我会选择使用George提供的内容将其推送到VM队列。但是,如果多线程处理的目的不是为了提高性能,而是为了避免在其中一条记录失败时抛出错误,那么我建议在具有try/catch作用域的普通for each上执行此操作。这比过度设计您的需求更简单,也更容易解决问题。@oim我想提高性能,但我以前没有使用过VM连接器。你能举个例子吗?