2019独角兽企业重金招聘Python工程师标准>>>

设置一个远程分块任务需要定义一系列的 beans:

  • 一个连接工程来从消息中间件中获得连接,消息中间件包括有(JMS,AMQP 和其他)
  • 一个 MessagingTemplate  来从主向从发送消息,然后再次发送回来
  • 为 Spring 整合从消息中间件中获得消息来创建一个输入和输出通道
  • 一个特殊的内容写(item writer)(ChunkMessageChannelItemWriter)在主机侧,这样真多处理和写入能够知道如何发送分块数据到工作机
  • 在工作机侧的消息监听器(ChunkProcessorChunkHandler)来从主机上接受数据

这个在第一次看来的时候好像非常复杂,并且是一个艰巨的任务。在新发布的版本中我们介绍使用注解 @EnableBatchIntegration 来作为一个新的 API(RemoteChunkingMasterStepBuilder 和 RemoteChunkingWorkerBuilder) 来简化配置。下面的示例显示了如何使用新的注解和 API:

@Configuration
@EnableBatchProcessing
@EnableBatchIntegration
public class RemoteChunkingAppConfig {@Autowiredprivate RemoteChunkingMasterStepBuilderFactory masterStepBuilderFactory;@Autowiredprivate RemoteChunkingWorkerBuilder workerBuilder;@Beanpublic TaskletStep masterStep() {return this.masterStepBuilderFactory.get("masterStep").chunk(100).reader(itemReader()).outputChannel(outgoingRequestsToWorkers()).inputChannel(incomingRepliesFromWorkers()).build();}@Beanpublic IntegrationFlow worker() {return this.workerBuilder.itemProcessor(itemProcessor()).itemWriter(itemWriter()).inputChannel(incomingRequestsFromMaster()).outputChannel(outgoingRepliesToMaster()).build();}// Middleware beans setup omitted
}

这个新的注解和构造器配置了 beans 中最难配置的部分。现在你可以非常容易的配置主机和 Spring 整合到工作机。你可以找到远程分块示例。用户在这个示例中使用了 samples module API,有关更多细节的内容请参考 Spring Batch Integration 章节。

与远程快配置简单化一样,这个新的版本将会介绍新的 API 来简化远程分区设置:RemotePartitioningMasterStepBuilder 和 RemotePartitioningWorkerStepBuilder。

这些可以自动重写你的配置类,如果 @EnableBatchIntegration 出现了的话,具体的示例代码请参考下面的示例:

@Configuration
@EnableBatchProcessing
@EnableBatchIntegration
public class RemotePartitioningAppConfig {@Autowiredprivate RemotePartitioningMasterStepBuilderFactory masterStepBuilderFactory;@Autowiredprivate RemotePartitioningWorkerStepBuilderFactory workerStepBuilderFactory;@Beanpublic Step masterStep() {return this.masterStepBuilderFactory.get("masterStep").partitioner("workerStep", partitioner()).gridSize(10).outputChannel(outgoingRequestsToWorkers()).inputChannel(incomingRepliesFromWorkers()).build();}@Beanpublic Step workerStep() {return this.workerStepBuilderFactory.get("workerStep").inputChannel(incomingRequestsFromMaster()).outputChannel(outgoingRepliesToMaster()).chunk(100).reader(itemReader()).processor(itemProcessor()).writer(itemWriter()).build();}// Middleware beans setup omitted
}

有关这个新注解的更多细节,请参考 Spring Batch Integration 章节中的内容。

https://www.cwiki.us/display/SpringBatchZH/@EnableBatchIntegration+Annotation

转载于:https://my.oschina.net/u/2344080/blog/3003551

Spring Batch @EnableBatchIntegration 注解相关推荐

  1. Spring Batch在大型企业中的最佳实践

    在大型企业中,由于业务复杂.数据量大.数据格式不同.数据交互格式繁杂,并非所有的操作都能通过交互界面进行处理.而有一些操作需要定期读取大批量的数据,然后进行一系列的后续处理.这样的过程就是" ...

  2. 首次使用批处理框架 Spring Batch ,被震撼到了,太强大...

    以下文章来源方志朋的博客,回复"666"获面试宝典 spring batch简介 spring batch是spring提供的一个数据处理框架.企业域中的许多应用程序需要批量处理才 ...

  3. spring batch (四) Job的配置及配置文件说明介绍

    内容来自<Spring Batch 批处理框架>,作者:刘相. 我只是个搬运工. 一.Spring Batch提供了独立的标签用来顶一个Job配置,分别是job.step.tasklet. ...

  4. 你知道 Spring Batch 吗?

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 译者:李东 来源:uee.me/cEwUq 我将向您展示如 ...

  5. Spring Batch教程–最终指南

    这是Spring批处理教程,它是Spring框架的一部分. Spring Batch提供了可重用的功能,这些功能对于处理大量记录至关重要,包括日志记录/跟踪,事务管理,作业处理统计信息,作业重新启动, ...

  6. 关于Spring batch的学习之CSV2DB

    最近在学习Spring batch相关的内容,网上也有不少Spring Batch相关的知识,不过大多都是使用xml进行配置的.这里是我用注解的方式进行相关的学习心得. 首先我们来看如何将一个文本文件 ...

  7. Spring Batch 使用指南

    Spring Batch的核心概念 如下图,JobLancher启动job,一个job包含若干step,每个step又包含一个ItemReader(读数据),ItemProcessor(处理数据),和 ...

  8. Spring Batch之批处理实践

    这里对Spring Batch 进行批处理实践. 介绍 本文将会讲述SpringBatch 如何搭建并运行起来的. 本教程,将会介绍从磁盘读取文件,并写入MySql 中. 什么是Spring Batc ...

  9. springbatch读取文件_通过例子讲解Spring Batch入门,优秀的批处理框架

    1 前言 " 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Spring Batch是一个轻量级的.完善的批处理框架,作为Spring体系中的一员,它拥有灵活.方便.生产 ...

最新文章

  1. java字体颜色编程_java Applet 程序设计讲解2 字体,颜色的使用
  2. Git 撤销中间某次的提交记录
  3. 第一个Scala程序——Hello World!
  4. Linux下Oracle数据库的搭建(新手)
  5. 第一段冲刺 站立会议 5.6
  6. AMESim找图形平衡点的方法
  7. lazy load 图片延迟加载 跟随滚动条
  8. AI美杜莎来袭 · 光点2021
  9. facebook登录我游戏_Facebook对我的位置了解多少
  10. SGX中的X特性、SGX获取元数据
  11. 如何使用python做中文情感分析
  12. 要运行python程序要安装什么_求你要我(2)
  13. VUCA时代:软件架构解决复杂性之道
  14. linux服务器22端口不通,怎么解决linux的端口不通问题
  15. Python爬虫 爬取新浪微博热搜
  16. Vue进阶(壹佰):当前页面刷新并重载页面数据
  17. ProcessOn第一次使用教程
  18. 管理学中的纳什均衡理论分享
  19. #Revit二次开发# 创建剖面视图
  20. 查高考成绩服务器维护,高考成绩查询入口2021

热门文章

  1. linux升级补丁tar,Linux下Bash严重漏洞补丁升级方法
  2. DHCP与DHCP中继简介
  3. layui js添加html,layui.js如何声明全局变量?
  4. linux 6中启动模式,linux6.x启动流程
  5. java实例域静态域_有关java 实例域 静态域 静态方法
  6. java8电脑版安装包下载百度云_everything电脑文件搜索工具
  7. oracle存储过程拼',【求助】关于oracle存储过程'字符串拼接'
  8. mybatis多个foreach_使用 Mybatis 的 foreach 批量模糊 like 查询及批量插入
  9. atm系统的用例模型_战斗系统执行式测试经验汇总
  10. java地狱猫_ES6 ES6变量的声明