当前位置: 首页 > news >正文

门户网站建设 存在的问题网站开发 发表文章

门户网站建设 存在的问题,网站开发 发表文章,ICP网站忘记密码,做任务 送科比网站目录 引言 概念 案例 转视频版 引言 接着上篇#xff1a;Spring Batch ItemWriter组件#xff0c;了解Spring Batch ItemWriter处理组件后#xff0c;接下来一起学习一下Spring Batch 高级功能-多线程步骤 概念 默认的情况下#xff0c;步骤基本上在单线程中执行Spring Batch ItemWriter组件了解Spring Batch ItemWriter处理组件后接下来一起学习一下Spring Batch 高级功能-多线程步骤 概念 默认的情况下步骤基本上在单线程中执行那能不能在多线程环境执行呢答案肯定是yes但是也要注意多线程环境步骤执行一定要慎重。原因多线程环境下步骤是要设置不可重启。 Spring Batch 的多线程步骤是使用Spring 的 TaskExecutor(任务执行器)实现的。约定每一个块开启一个线程独立执行。 案例 需求分5个块处理user-thread.txt文件 1编写user-thread.txt文件 1#dafei#18 2#xiaofei#16 3#laofei#20 4#zhongfei#19 5#feifei#15 6#zhangsan#14 7#lisi#13 8#wangwu#12 9#zhaoliu#11 10#qianqi#10 2定义实体对象 Getter Setter ToString public class User {private Long id;private String name;private int age; } 3完整代码 package com.langfeiyes.batch._35_step_thread;import org.springframework.batch.core.Job; import org.springframework.batch.core.Step; import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.item.ItemWriter; import org.springframework.batch.item.file.FlatFileItemReader; import org.springframework.batch.item.file.builder.FlatFileItemReaderBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.core.io.ClassPathResource; import org.springframework.core.task.SimpleAsyncTaskExecutor;import java.util.List;SpringBootApplication EnableBatchProcessing public class ThreadStepJob {Autowiredprivate JobBuilderFactory jobBuilderFactory;Autowiredprivate StepBuilderFactory stepBuilderFactory;Beanpublic FlatFileItemReaderUser userItemReader(){System.out.println(Thread.currentThread());FlatFileItemReaderUser reader new FlatFileItemReaderBuilderUser().name(userItemReader).saveState(false) //防止状态被覆盖.resource(new ClassPathResource(user-thread.txt)).delimited().delimiter(#).names(id, name, age).targetType(User.class).build();return reader;}Beanpublic ItemWriterUser itemWriter(){return new ItemWriterUser() {Overridepublic void write(List? extends User items) throws Exception {items.forEach(System.err::println);}};}Beanpublic Step step(){return stepBuilderFactory.get(step1).User, Userchunk(2).reader(userItemReader()).writer(itemWriter()).taskExecutor(new SimpleAsyncTaskExecutor()).build();}Beanpublic Job job(){return jobBuilderFactory.get(thread-step-job).start(step()).build();}public static void main(String[] args) {SpringApplication.run(ThreadStepJob.class, args);} }4结果 User(id2, namexiaofei, age16) User(id5, namefeifei, age15) User(id4, namezhongfei, age19) User(id7, namelisi, age13) User(id1, namedafei, age18) User(id6, namezhangsan, age14) User(id3, namelaofei, age20) User(id8, namewangwu, age12) User(id9, namezhaoliu, age11) User(id10, nameqianqi, age10) 解析 1userItemReader() 加上saveState(false) Spring Batch 提供大部分的ItemReader是有状态的作业重启基本通过状态来确定作业停止位置而在多线程环境中如果对象维护状态被多个线程访问可能存在线程间状态相互覆盖问题。所以设置为false表示关闭状态但这也意味着作业不能重启了。 2step() 方法加上.taskExecutor(new SimpleAsyncTaskExecutor()) 为作业步骤添加了多线程处理能力以块为单位一个块一个线程观察上面的结果很明显能看出输出的顺序是乱序的。改变 job 的名字再执行会发现输出数据每次都不一样。 到这本篇就结束了欲知后事如何请听下回分解~ 转视频版 看文字不过瘾可以切换视频版Spring Batch高效批处理框架实战
http://www.dnsts.com.cn/news/170390.html

相关文章:

  • 网站建设与运营的论文平面广告作品分析
  • 网站开发硬件环境怎么填wordpress 覆盖原始图片对比效果
  • 做公益选哪个网站好网站 界面
  • 查找全国免费网站建设网站推广方案途径
  • 北京企业网站seo平台中兴建设有限公司网站
  • 淘客网站代理app下载登录
  • 平台做的h5如何嫁接到网站响应式布局网站模板
  • 苏州市吴江建设局网站创作网站
  • 如何开通网站行业网站建设优化案例
  • 下载百度网盘app最新版丹东seo优化
  • js特效网站展示爱情表白制作网页的网站
  • 东莞手机网站国家企业信用信息年报
  • 网站竞价推广2024年新闻热点事件摘抄
  • 百度站长工具怎么查排名阿里企业邮箱电话
  • 做gif有什么网站网站怎么申请微信支付接口
  • 微信公众号创建平台关键词优化策略有哪些
  • 移动网站怎么做优化淘宝网请人做淘宝客网站
  • 百度网站关键词优化在哪里做网站计划
  • 炫酷网站源码wordpress怎么加备案号
  • 提交网站地图求职网站建设方案
  • 泉州网页建站模板网站开发语言查看
  • 国外建站用什么最多上海做一个公司网站多少钱
  • 网站有中文源码加英文怎么做宝安专业做网站
  • 江苏建设厅网站查询wordpress投稿插件
  • 上海太江建设网站进不去wordpress
  • 手机网站前端模板下载三门峡 网站建设
  • 自己做的网站如何兼容西班牙语网站设计公司哪家好
  • 杭州app开发制作公司google关键词优化
  • 新网站如何做免费推广联想官方服务网站
  • 虚拟机中做网站互联网保险的特点