我正在处理非常大的文件,并使用Spring集成来处理它们。我想知道使用Spring集成和提供的DSL处理这些问题的最佳和最有效的方法是什么。我有一个测试CSV文件,它有大约30K条记录,我正在使用filespliter组件将每一行读入内存,然后根据分隔符再次拆分,以获得我需要的列。
下面的代码段。
IntegrationFlows
.from(Files.inboundAdapter(new File(inputFilePath))
.filter(getFileFilters())
.autoCreateDirectory(true) ,
c -> c.poller(Pollers.fixedRate(1000))
)
.split(Files.splitter())
.channel(c -> c.executor(Executors.newWorkStealingPool()))
.handle((p, h) -> new MyColumnSelector().getCol((String) p, 1))
.split(s -> s.applySequence(true).delimiters(","))
.channel(c -> c.executor(Executors.newWorkStealingPool()))
.get()
问题是IDE和控制台日志开销减慢了速度。我使用相同的文件测试了它,没有任何IDE或任何额外的日志记录,它的处理速度显着加快。
在我的spring-batch-integration应用程序中,文件轮询调用eachfile的batchjob,该应用程序可以在多个服务器(节点)上运行,但它们都应该读取一个公共目录。代码如下 } 现在,当我调用Spring批处理并尝试使用flatfileitemreader读取该文件时,它给了我
如何使用java dsl Integrationflows从spring集成触发spring批处理作业。 我有下面的代码,它轮询目录中的文件,当新文件添加到目录中时,会生成一条消息,我想在该实例中触发一个Spring批处理作业。请建议。
我有一个spring批处理应用程序,它从文件中读取数据,进行一些处理,最后编写一个定制的输出。这一切都是一步到位的。在下一步中,我将使用一个tasklet来归档输入文件(移动到另一个文件夹)。这个应用程序运行良好。但是,现在我需要在远程服务器上对sftp输出文件进行进一步处理。我找到了一种使用spring integration实现sftp的方法,在这里我创建了一个输入通道,该通道将反馈给outb
问题内容: 我正在尝试使用Spring和JdbcTemplate遍历MySQL中表的每一行。如果我没记错的话,它应该很简单: 我收到一个OutOfMemoryError,因为它试图读取整个内容。有任何想法吗? 问题答案: 在 javadoc中已经指出: 向JDBC驱动程序 提示 应从数据库中获取的行数 驱动程序实际上可以自由地应用或忽略提示。一些驱动程序忽略它,一些驱动程序直接应用它,一些驱动程序
当RabbitMq消息到达队列时,我目前正在使用IntegrationFlow来触发作业执行。IntegrationFlow的AmqpInFronChannelAdapter和作业的第一步的ItemReader都配置为从同一队列中读取消息。 我遇到的问题是IntegrationFlow的AmqpInboundChannelAdapter读取RabbitMQ消息,然后ItemReader再也找不到该
我正在使用jhipster,我想在我的WebApp中集成spring批处理管理控制台。(例如http://localhost:8080/batch-console) 我尝试在我的jhipster webapp中集成以下响应,有没有一种方法可以正确地集成spring-batch-admin和spring-boot?但我得到以下错误(属性似乎未加载) Spring Boot版本:1.4.1.发布Jhi