Tag: spring batch

如何按特定顺序运行Spring Batch Jobs(Spring Boot)?

我正在使用Spring Boot开发Spring Batch。 我使用Spring Boot提供的最小配置并定义了一些Jobs(根本没有XML配置)。 但是当我运行应用程序时 SpringApplication.run(App.class, args); 作业按任意顺序依次执行。 我在@Configuration注释类中以这种方式定义作业,Spring完成其余的工作: @Bean public Job requestTickets() { return jobBuilderFactory.get(Config.JOB_REQUEST_TICKETS) .start(stepRequestTickets()) .build(); } 如何指示框架按特定顺序运行作业? 编辑:这个警告可以提示吗? (也许没什么可比的) 2016-12-29 17:45:33.320 WARN 3528 — [main] osbccaDefaultBatchConfigurer: No datasource was provided…using a Map based JobRepository

Spring Batch中未终止的双引号

我是Spring Batch的新手,我遇到了一个问题。 我正在处理的批处理应用程序从分隔的文本文件中读取和处理行。 我已将应用程序配置为使用FlatFileReader来读取分隔的文本文件,但问题是正在读取的某些数据中包含双引号。 当FlatFileReader遇到单个双引号时抛出FlatFileParseException,但是当存在两个双引号时不抛出。 有没有人遇到过这个问题,如果有的话,什么是正确的解决方案? 不幸的是,操纵数据本身并不是一种选择。 我尝试在每个双引号之前添加一个转义字符,但无论如何都会抛出exception。 任何帮助将不胜感激。

Spring Batch Processor

我在Spring Batch中有一个要求,我有一个文件,其中有数千条记录按排序顺序排列。关键字段是产品代码。 该文件可能具有相同产品代码的多个记录。要求是我必须将具有相同产品代码的记录分组(即列表),然后将它们发送到方法即validateProductCodes(List prodCodeList)。 我正在寻找最好的方法。我想到的方法是读取处理器中的每条记录,然后在处理器中为相同的产品代码构建一组记录。如果处理器中的任何一点,如果记录中的产品代码不同于暗示productCode分组已完成,并且可以使用相同的产品代码为该组记录调用validateProductCodes()。我也使用Step.So不会自动意味着进程是multithreading的?含义具有相同productCode的记录组将以multithreading方式处理。请注意。 谢谢

Bean属性不可读或具有无效的getter方法:getter的返回类型是否与setter的参数类型匹配? 春批

我正在开发Spring Batch CompositeItemReader & Writer示例。 我开发了XML文件并且能够成功编译代码,但是当运行mu示例代码时,会出现以下错误。 不确定出了什么问题? org.springframework.beans.NotReadablePropertyException: Invalid property ‘customerNumber’ of bean class [java.lang.String]: Bean property ‘customerNumber’ is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter? at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyValue(AbstractNestablePropertyAccessor.java:619) at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyValue(AbstractNestablePropertyAccessor.java:610) at org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor.extract(BeanWrapperFieldExtractor.java:57) at org.springframework.batch.item.file.transform.ExtractorLineAggregator.aggregate(ExtractorLineAggregator.java:54) at org.springframework.batch.item.file.FlatFileItemWriter.write(FlatFileItemWriter.java:267) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at […]

使用spring批处理并行执行作业

我有一个用例如下: 1)There is a Parentjob which has multiple child jobs. 2)All child jobs should be executed in parallel. 3)The parent job should wait until all child jobs are done. 4)One child jobs are done control returns to master 5)Master job is completed. 6)In case any of the child job throws exception then also control should […]

Spring批处理 – 处理后从目录中删除flatfile

在spring批处理中,我使用MultiResourceItemReader从目录中读取多个文件。 然后我使用FlatFileItemReader作为委托处理单个文件。 我的用例是在文件完全处理后删除文件(READ-WRITE完成)然后multiResourceitemReader必须选择另一个文件,它必须继续。 我尝试使用FileDeletingTasklet来删除目录中的文件,但是根据Spring文档,execute方法只会被调用一次。 如何在文件上删除已处理的文件(READ-WRITE),但是在目录中完全处理完所有文件后,我不想删除整个目录。 以下是我正在使用的工作:

Spring批处理中的网格大小

我有批处理作业,它从批量文件中读取数据,处理它并插入数据库。 我使用默认分区处理程序使用spring的分区function。 这里gridSize什么意义? 我已经以这样的方式配置它等于taskExecutor中的并发性。

使用带有列表列表的ItemWriter

我们的处理器返回List (有效地将List<List>传递给)我们的ItemWriter 。 现在,我们观察到JdbcBatchItemWriter未编程为处理item instanceof List 。 我们还观察到处理项目实例List ; 我们需要编写一个自定义的ItemSqlParameterSourceProvider 。 但令人遗憾的是它返回SqlParameterSource ,它只能处理一个item并且无法处理List 。 那么,有人可以帮助我们了解如何处理JdbcBatchItemWriter中的列表列表吗?

Spring批处理中的多个项目编写者

我正在编写一个Spring批处理,我正在读取一大块数据,处理它然后我希望将这些数据传递给2个编写器。 一个编写器只是更新数据库,而第二个编写器将写入csv文件。 我打算编写自己的自定义编写器并在customItemWriter中注入两个itemWriters,并在customItemWriter的write方法中调用两个item编写器的write方法。 这种方法是否正确? 是否有任何符合我要求的ItemWriter实现? 提前致谢

Spring Batch Java Config:exception时跳过步骤并转到下一步

例如我在工作中有3个步骤(类似于步骤1): @Autowired private StepBuilderFactory stepBuilderFactory; @Bean public Step step1() { return stepBuilderFactory .get(“step1”) . chunk(1) .reader(reader()) .processor(processor()) .writer(writer()) .build(); } 即使在步骤1中出现exception后,如何进入步骤2和3? 我的意思是用Java配置。