我目前正在开发Spring Boot和Spring Batch应用程序,以从数据库中读取200,000条记录,对其进行处理并生成XML输出。
我编写了一个单线程Spring批处理程序,它使用<code>JDBCPagingItemReaderStateVentItemReader生成此输出。整个过程需要30分钟。我想通过使用Spring批处理本地分区来增强这个程序。任何人都可以共享Java配置代码来完成Spring批处理分区的任务吗?这将把处理拆分为多线程多文件。我尝试过多线程Java配置,但<code>StateVentitemReader</code>是单线程,因此无法工作。我唯一看到的是分区。
感谢你的帮助。
您是对的,分区是解决此问题的方法。我没有JDBC到XML的示例来配置分区批处理作业,但我确实有一个CSV到JDBC的示例,其中您应该能够将ItemReader
和ItemWriter
替换为您需要的那些(分别为JdbcPagingItemReader
和StaxEventItemWriter
)。此示例实际上使用Spring Cloud Task将工作线程作为远程进程启动,但是如果您将分区Handler
替换为TaskExecutorPartitionHandler
(而不是配置的DeploderPartitionHandler
),则会在内部以线程的形式执行分区。
https://github.com/mminella/S3JDBC
在Spring批处理分区中,PartitionHandler的与分区器返回的ExecutionContexts数量之间的关系有点混乱。例如,MultiResourcePartitioner声明它忽略gridSize,但是文档没有解释何时/为什么可以这样做。 例如,假设我有一个,我希望在不同的并行步骤中重用它,并且我将它的大小设置为20。如果我使用网格大小为5的TaskExecutorPartiti
我不确定使用spring Batch是否可行。任何想法或我都无法实现它。谢谢。
本文向大家介绍Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析,包括了Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Thinkphp 框架配置操作之动态配置、扩展配置及批量配置。分享给大家供大家参考,具体如下: 动态配置 设置格式: 例如,我们需要动态改变数据缓存的有效期的话,可以使用 动态配置赋值仅
我正在实现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
如果是,那么我需要做什么来让它们工作?