spring.batch.job.enabled=false # 默认自动执行定义的Job(true),改为false,需要jobLaucher.run执行
step单节点的多线程并行执行 @Bean public Step helloWorldStep(StepBuilderFactory stepBuilders) { return stepBuilders.get("helloWorldStep") .<City, String>chunk(100) .reader(reader(dataSource)) .processor(processor()) .writer(writer()) .taskExecutor(new SimpleAsyncTaskExecutor())//可以自定义线程池 .throttleLimit(8) .build(); }
断批续跑需要在逻辑上设立某字段标记数据是否已经被处理,使用JdbcPagingItemReader续跑处理未完成的数据
如果需要多结点并行,可以将key的集合发送到消息队列,并设置处理状态为已处理