当前位置: 首页 > 知识库问答 >
问题:

在Spring批量分区中配置gridSize

薛寒
2023-03-14

在Spring批处理分区中,PartitionHandler的GridSize与分区器返回的ExecutionContexts数量之间的关系有点混乱。例如,MultiResourcePartitioner声明它忽略gridSize,但是Partitioner文档没有解释何时/为什么可以这样做。

例如,假设我有一个TaskExecutor,我希望在不同的并行步骤中重用它,并且我将它的大小设置为20。如果我使用网格大小为5的TaskExecutorPartitionerHandler和返回任意数量的分区(每个html" target="_blank">文件一个)的MultiResourcePartitioner,那么并行性将如何实际运行?

如果不是这样,我该如何做到这一点呢?也就是说,我如何重用一个任务执行器,并分别定义该步骤可以并行运行的分区数和实际创建的分区数?

共有1个答案

程天佑
2023-03-14

这里有几个很好的问题,所以让我们逐个来看看:

例如,假设我有一个taskExecutor,我想在不同的并行步骤中重用它,并且我将它的大小设置为20。如果我使用网格大小为5的TaskExecutorPartitionerHandler和返回任意数量的分区(每个文件一个)的MultiResourcePartitioner,并行性将如何实际运行?

TaskExecutorPartitionHandler将并发限制推迟到您提供的TaskExecutor。因此,在您的示例中,PartitionHandler将使用TaskExecutor允许的最多20个线程

如果重用TaskExecutor,则可能无法重用,因为TaskExecutor可能正在执行其他操作。我想知道为什么您要重用一个,因为创建一个专用的开销相对较低(您甚至可以将它设置为步骤范围,以便只在分区步骤运行时创建它)。

 类似资料:
  • 我目前正在开发Spring Boot和Spring Batch应用程序,以从数据库中读取200,000条记录,对其进行处理并生成XML输出。 我编写了一个单线程Spring批处理程序,它使用<code>JDBCPagingItemReaderStateVentItemReader生成此输出。整个过程需要30分钟。我想通过使用Spring批处理本地分区来增强这个程序。任何人都可以共享Java配置代码

  • 我不确定使用spring Batch是否可行。任何想法或我都无法实现它。谢谢。

  • 我正在检查spring批处理远程分区,以便从RDBMS源加载数据,以及多分区Kafka主题。我的问题是,我不能用rabbitMQ或JMS作为master和worker节点之间的中间件,我只能用Kafka作为master和worker之间的通道。 在所有文档中,我可以看到它支持JMS和AMQP。谁能告诉我,我们如何使用远程分区与Kafka作为中间穿....如果有人也有工作的例子,那将是一个很大的帮助

  • 是否可以在Spring批处理中动态配置作业? 这是我想做的。我创建了几个不同的,如下所示: FlatFileItemReader 我希望能够在创建批处理作业时动态混合和匹配它们。例如,假设我需要一个有2个步骤的作业。第一步包含一个用于预处理的。第二步将有一个,用于使用我的阅读器/写入器进行基于块的数据处理......类似这样的东西: 在XML中,我可以执行以下操作: 但是我如何像上面一样以编程方式

  • 我正在实现spring批处理作业,用于使用分区方法处理一个DB表中的数百万条记录,如下所示- > 从分区器中的表中提取唯一的分区代码,并在执行上下文中设置相同的代码。 创建一个包含读取器、处理器和写入器的块步骤,以基于特定分区代码处理记录。 是否可以创建分区/线程来处理像thread1进程1-1000,thread2进程1001-2000等? 如何控制创建的线程数,因为分区代码可以是100个左右,

  • 我们正在处理一个Spring批处理项目(Spring Boot1.2.2.Release),要求使用Spring SFTP集成以一定频率轮询从服务器位置读取文件。我们使用java config实现了Spring批处理,并在使用Spring Integration java config的过程中实现了Spring批处理。我找不到描述上述情况的例子。我浏览了各种链接,但看到的主要是XML配置示例。 h