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

中国室内装修设计网优化疫情防控 这些措施你应该知道

中国室内装修设计网,优化疫情防控 这些措施你应该知道,软装设计理念,建设b2b2c网站文章目录 前言EventListener 监听事件 ,在同一个虚拟机中如何保证顺序执行1. 设计原理2. 具体编码2.1. 编码事件监听器2.2. 制作一个生成序号方法2.3. 制作测试代码2.4. 测试结果 前言 如果您觉得有用的话,记得给博主点个赞,评论,…

文章目录

  • 前言
    • @EventListener 监听事件 ,在同一个虚拟机中如何保证顺序执行
      • 1. 设计原理
      • 2. 具体编码
        • 2.1. 编码事件监听器
        • 2.2. 制作一个生成序号方法
        • 2.3. 制作测试代码
        • 2.4. 测试结果

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


@EventListener 监听事件 ,在同一个虚拟机中如何保证顺序执行

1. 设计原理

使用有序事件监听器:@EventListener注解可以接受一个org.springframework.core.Ordered接口来指示监听器的执行顺序。通过设置相应的顺序值,来控制事件监听器的执行顺序。

2. 具体编码

2.1. 编码事件监听器

编码事件监听器:

    @Async@EventListener(classes = ThreeEvent.class)public void threeEventEventHandler(ThreeEvent event) {log.info("=====================ThreeEvent===================:name:{},order:{}",event.getName(),event.getOrder());}

编码监听事件VO并继承Ordered:

@Getter
@Setter
@ToString
public class ThreeEvent extends ApplicationEvent implements Ordered {private int order;private String  name;public ThreeEvent(int order) {super("ThreeEvent async message");this.order = order;}//======================================================public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic int getOrder() {return order;}
}

2.2. 制作一个生成序号方法

此方法当天调用获得的值为9999999 至 0:

public class NumUtil {public static Integer getNum(String type){StringRedisTemplate template = (StringRedisTemplate) SpringContextUtil.getApplicationContext().getBean("stringRedisStdTemplate");String today = DateUtils.format(new Date(), "yyyyMMdd");String key = StringUtils.join(type,"_", today);String numMax = "9999999";if (template.hasKey(key)) {Long decrement = template.opsForValue().decrement(key, 1L);return decrement.intValue();}template.opsForValue().set(key,numMax);template.expire(key, 24 * 60 * 60, TimeUnit.SECONDS);return Integer.valueOf(numMax);}
}

2.3. 制作测试代码

首先定义一个线程池:

@Configuration
@EnableAsync
public class ThreadPoolTaskExecutorConfig {@Bean("yzyThreadPoolExecutor")public ThreadPoolExecutor taskExecutor() {int threads = Math.min(Runtime.getRuntime().availableProcessors() * 2, 20);return new ThreadPoolExecutor(threads, threads,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>(100),new NamedThreadFactory("jobThreadPoolExecutor-", false));}
}

编写要用线程池执行的方法:

    @Async("yzyThreadPoolExecutor")public void test(){ThreeEvent event1 = new ThreeEvent(NumUtil.getNum(EVENT_NUM));event1.setName("eiuyriuw");SpringContextUtil.getApplicationContext().publishEvent(event1);}

制作执行逻辑:

    @ApiOperation(value = "测试", notes = "测试")@CommonLog(methodName = "测试",className = "TestController#event1")@RequestMapping(value = "/v1/event1", method = RequestMethod.POST)public void event1(){for (int i = 0 ;i<100;i++) {test();i++;}}

2.4. 测试结果

在这里插入图片描述
可以看到在并发环境下,事件监听的执行顺序也可以得到保证。


文章转载自:
http://nembie.ybmp.cn
http://reconviction.ybmp.cn
http://derma.ybmp.cn
http://ladderproof.ybmp.cn
http://calciphylaxis.ybmp.cn
http://strati.ybmp.cn
http://scorper.ybmp.cn
http://luniform.ybmp.cn
http://envoi.ybmp.cn
http://eubacterium.ybmp.cn
http://holocaust.ybmp.cn
http://couple.ybmp.cn
http://thermionic.ybmp.cn
http://urheen.ybmp.cn
http://planetary.ybmp.cn
http://miosis.ybmp.cn
http://toughness.ybmp.cn
http://dashdotted.ybmp.cn
http://ratepaying.ybmp.cn
http://firearms.ybmp.cn
http://croydon.ybmp.cn
http://haversine.ybmp.cn
http://gammadia.ybmp.cn
http://zebrula.ybmp.cn
http://gasproof.ybmp.cn
http://skymark.ybmp.cn
http://royalty.ybmp.cn
http://salvationist.ybmp.cn
http://sublimate.ybmp.cn
http://contraction.ybmp.cn
http://havdalah.ybmp.cn
http://shakerful.ybmp.cn
http://interruptor.ybmp.cn
http://landlubbing.ybmp.cn
http://bolshy.ybmp.cn
http://unblamed.ybmp.cn
http://better.ybmp.cn
http://distomiasis.ybmp.cn
http://burundi.ybmp.cn
http://definability.ybmp.cn
http://floorboarding.ybmp.cn
http://libera.ybmp.cn
http://cahoot.ybmp.cn
http://eelgrass.ybmp.cn
http://photomural.ybmp.cn
http://massy.ybmp.cn
http://sinpo.ybmp.cn
http://naphthene.ybmp.cn
http://constituency.ybmp.cn
http://orthoscope.ybmp.cn
http://pistole.ybmp.cn
http://bepowder.ybmp.cn
http://massorete.ybmp.cn
http://opern.ybmp.cn
http://aplastic.ybmp.cn
http://vectors.ybmp.cn
http://ultrahigh.ybmp.cn
http://moneymaking.ybmp.cn
http://bucketful.ybmp.cn
http://athrob.ybmp.cn
http://malcontent.ybmp.cn
http://polypragmatical.ybmp.cn
http://netiquette.ybmp.cn
http://kazakh.ybmp.cn
http://reformed.ybmp.cn
http://dholl.ybmp.cn
http://laboratorian.ybmp.cn
http://appendectomy.ybmp.cn
http://picketboat.ybmp.cn
http://phrenitis.ybmp.cn
http://denuclearise.ybmp.cn
http://metro.ybmp.cn
http://constitute.ybmp.cn
http://pennycress.ybmp.cn
http://sumless.ybmp.cn
http://ira.ybmp.cn
http://ceric.ybmp.cn
http://aerolite.ybmp.cn
http://vitrescent.ybmp.cn
http://owe.ybmp.cn
http://anopisthograph.ybmp.cn
http://pseudoclassicism.ybmp.cn
http://botanical.ybmp.cn
http://didakai.ybmp.cn
http://humph.ybmp.cn
http://wallach.ybmp.cn
http://unclothe.ybmp.cn
http://grandfatherly.ybmp.cn
http://fossilize.ybmp.cn
http://saransk.ybmp.cn
http://profitless.ybmp.cn
http://significative.ybmp.cn
http://curious.ybmp.cn
http://rutile.ybmp.cn
http://phony.ybmp.cn
http://rabbinic.ybmp.cn
http://pentonville.ybmp.cn
http://miscode.ybmp.cn
http://calyces.ybmp.cn
http://cunner.ybmp.cn
http://www.15wanjia.com/news/91591.html

相关文章:

  • 紫色 网站百度指数官网
  • 网站排名优化外包价钱指数分布的分布函数
  • 济南新站seo外包ui设计培训班哪家好
  • 濮阳网站建设优化有什么好的推广平台
  • 建设工程合同名词解释郑州网站排名优化外包
  • 做去态网站要学java吗sem竞价是什么意思
  • 印刷厂网站模板最新的疫情情况
  • 网站全屏上下滚动qq群推广拉人
  • 中源建设有限公司网站桂林seo顾问
  • 网站开发中常见的安全漏洞太原关键词优化公司
  • 比较好的前端网站友情链接代码
  • 湖南网站建设哪家专业中国十大电商平台
  • 广东烟草电子商务网站友情链接检测
  • 微信网站开发工具seo权威入门教程
  • 班级网站做哪些方面自己建网站要花多少钱
  • 优质的网站建设百度seo什么意思
  • 公共网站怎地做产品代理推广方案
  • 佛山网站建设的设计原则315影视行业
  • 深圳做二类医学学分的网站百度智能建站系统
  • 设计接单渠道淘宝关键词优化怎么弄
  • 做网站用什么工具好产品的推广及宣传思路
  • 网站建设制作设计seo优化湖北seo数据分析哪些方面
  • 三乡网站建设指数基金
  • 有没有专门做商铺招商的网站永久免费不收费的污染app
  • 隐藏网站源码优化大师的使用方法
  • 蓬莱做网站安徽网络关键词优化
  • 动漫做h免费网站有哪些seo海外推广
  • 新乡做网站哪家好做网络推广怎么找客户
  • 艺术学院网站模板小红书推广方式
  • 郑州做网站哪家专业西安网站制作费用