Spring Batch @EnableBatchIntegration 注解
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 注解相关推荐
- Spring Batch在大型企业中的最佳实践
在大型企业中,由于业务复杂.数据量大.数据格式不同.数据交互格式繁杂,并非所有的操作都能通过交互界面进行处理.而有一些操作需要定期读取大批量的数据,然后进行一系列的后续处理.这样的过程就是" ...
- 首次使用批处理框架 Spring Batch ,被震撼到了,太强大...
以下文章来源方志朋的博客,回复"666"获面试宝典 spring batch简介 spring batch是spring提供的一个数据处理框架.企业域中的许多应用程序需要批量处理才 ...
- spring batch (四) Job的配置及配置文件说明介绍
内容来自<Spring Batch 批处理框架>,作者:刘相. 我只是个搬运工. 一.Spring Batch提供了独立的标签用来顶一个Job配置,分别是job.step.tasklet. ...
- 你知道 Spring Batch 吗?
点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 译者:李东 来源:uee.me/cEwUq 我将向您展示如 ...
- Spring Batch教程–最终指南
这是Spring批处理教程,它是Spring框架的一部分. Spring Batch提供了可重用的功能,这些功能对于处理大量记录至关重要,包括日志记录/跟踪,事务管理,作业处理统计信息,作业重新启动, ...
- 关于Spring batch的学习之CSV2DB
最近在学习Spring batch相关的内容,网上也有不少Spring Batch相关的知识,不过大多都是使用xml进行配置的.这里是我用注解的方式进行相关的学习心得. 首先我们来看如何将一个文本文件 ...
- Spring Batch 使用指南
Spring Batch的核心概念 如下图,JobLancher启动job,一个job包含若干step,每个step又包含一个ItemReader(读数据),ItemProcessor(处理数据),和 ...
- Spring Batch之批处理实践
这里对Spring Batch 进行批处理实践. 介绍 本文将会讲述SpringBatch 如何搭建并运行起来的. 本教程,将会介绍从磁盘读取文件,并写入MySql 中. 什么是Spring Batc ...
- springbatch读取文件_通过例子讲解Spring Batch入门,优秀的批处理框架
1 前言 " 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! Spring Batch是一个轻量级的.完善的批处理框架,作为Spring体系中的一员,它拥有灵活.方便.生产 ...
最新文章
- java字体颜色编程_java Applet 程序设计讲解2 字体,颜色的使用
- Git 撤销中间某次的提交记录
- 第一个Scala程序——Hello World!
- Linux下Oracle数据库的搭建(新手)
- 第一段冲刺 站立会议 5.6
- AMESim找图形平衡点的方法
- lazy load 图片延迟加载 跟随滚动条
- AI美杜莎来袭 · 光点2021
- facebook登录我游戏_Facebook对我的位置了解多少
- SGX中的X特性、SGX获取元数据
- 如何使用python做中文情感分析
- 要运行python程序要安装什么_求你要我(2)
- VUCA时代:软件架构解决复杂性之道
- linux服务器22端口不通,怎么解决linux的端口不通问题
- Python爬虫 爬取新浪微博热搜
- Vue进阶(壹佰):当前页面刷新并重载页面数据
- ProcessOn第一次使用教程
- 管理学中的纳什均衡理论分享
- #Revit二次开发# 创建剖面视图
- 查高考成绩服务器维护,高考成绩查询入口2021
热门文章
- linux升级补丁tar,Linux下Bash严重漏洞补丁升级方法
- DHCP与DHCP中继简介
- layui js添加html,layui.js如何声明全局变量?
- linux 6中启动模式,linux6.x启动流程
- java实例域静态域_有关java 实例域 静态域 静态方法
- java8电脑版安装包下载百度云_everything电脑文件搜索工具
- oracle存储过程拼',【求助】关于oracle存储过程'字符串拼接'
- mybatis多个foreach_使用 Mybatis 的 foreach 批量模糊 like 查询及批量插入
- atm系统的用例模型_战斗系统执行式测试经验汇总
- java地狱猫_ES6 ES6变量的声明