Spring batch b

1、这个东西要用到几个东西:

1、定时任务;

2、数据读取器;

3、数据处理器;

4、数据写入处理器;

在以上基础上 需要编写一个批处理的配置类, 这个配置类时用来做开启批处理的开关(

@EnableBatchProcessing

在配置类中编写一个创建 读取器的初始化代码逻辑;

@Bean

public IReader  iReader(@Value(#{jobParameters['id']}) Long id, @Value(#{jobParameters['status']}) Long status) {

IReader  ireader = new IReader();

//设置属性值 设置批属性的大小

return ireader;

}

在配置类中编写一个创建 处理器的初始化代码逻辑;

@Bean

public IProcessor iProcessor() {

return new IProcessor ();

}

在配置类中编写一个创建 写入器的初始化代码逻辑;

@Bean

public IWriter iWriter() {

return new IWriter();

}

在配置类中编写一个创建 步骤器的初始化代码逻辑;

@Bean

public IStep iStepor(

StepBuilderFactory builder,
                                       IReader  iReader,
                                       IProcessor  iProcessor ,
                                       IWriter iWriter,
                                       DataSourceTransactionManager transactionManager

) {

return builder.get("iStepor")
        .<Entity, Entity>chunk(batchSize)
        .reader(iReader).faultTolerant().retryLimit(3).retry(Exception.class).skip(Exception.class).skipLimit(10)
        .processor(iProcessor )
        .writer(iWriter).faultTolerant().skip(Exception.class).skipLimit(10)
        .transactionManager(transactionManager)
        .build();

}

注:在上面的step初始化中,读取器,以及处理器,写入器 实例不是必要初始化的,可以直接用一个方法来进行实现,如果要让代码结构好,以及可扩展,

那么对应的读取器需要继承 :AbstractPagingItemReader;
处理器实现: ItemProcessor

写入器需要实现:ItemWriter

在配置类中编写一个创建  任务执行器的初始化代码逻辑;

@Bean

public IJobor iJober() {

return builder.get("iJober")
        .incrementer(new RunIdIncrementer())
        .flow(iStepor)
        .end()
        .build();

}

初始化事务管理器 如果spring容器中不存在的话

@Bean
@ConditionalOnMissingBean(DataSourceTransactionManager.class)
public DataSourceTransactionManager transactionManager(DataSource dataSource) {
    return new DataSourceTransactionManager(dataSource);
}

调用客户端

@Autowired
private JobLauncher jobLauncher;  初始化任务器执行器

@Autowired
private Job iJob; 初始化任务

 任务参数构造器

JobParametersBuilder builder = new JobParametersBuilder();
启动任务 jobLauncher.run(iJob, builder.toJobParameters());
工程启动类需要加上注解:@EnableScheduling

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值