保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

18SpringBoot入门教程SpringBoot定时任务

  1。前言
  定时任务绝对是实际项目中的刚需。我们想监控一个重点服务的运行状态,可以每隔1分钟调用下该服务的心跳接口,调用失败时即发出告警信息;我们想每天凌晨的时候,将所有商品的库存置满,以免早上忘记添加库存影响销售;我们想在每个周六的某个时段进行打折促销。
  在以上的案例中,或者是指定时间间隔,或者是指定时间节点,按设定的任务进行某种操作,这就是定时任务了。
  在SpringBoot中实现定时任务简单而灵活,本节我们来体验下。2。SpringTask定时任务
  SpringTask是SpringBoot内置的定时任务模块,可以满足大部分的定时任务场景需求。
  通过为方法添加一个简单的注解,即可按设定的规则定时执行该方法。
  下面就演示下SpringBoot中使用SpringTask的具体方法。2。1使用SpringInitializr创建项目
  SpringBoot版本选择2。2。5,Group为com。imooc,Artifact为springboottask,生成项目后导入Eclipse开发环境。2。2开启定时任务
  在启动类上添加EnableScheduling注解,开启定时任务功能。
  实例:SpringBootApplicationEnableScheduling开启定时任务publicclassSpringBootTaskApplication{publicstaticvoidmain(String〔〕args){SpringApplication。run(SpringBootTaskApplication。class,args);}}2。3通过注解设定定时任务
  新建MySpringTask任务类,添加Component注解注册Spring组件,定时任务方法需要在Spring组件类才能生效。
  注意类中方法添加了Scheduled注解,所以会按照Scheduled注解参数指定的规则定时执行。
  实例:任务类ComponentpublicclassMySpringTask{每2秒执行1次Scheduled(fixedRate2000)publicvoidfixedRateMethod()throwsInterruptedException{System。out。println(fixedRateMethod:newDate());Thread。sleep(1000);}}
  上面例子执行情况如下,可见是每隔2秒执行1次。fixedRateMethod:FriMay1522:04:52CST2020fixedRateMethod:FriMay1522:04:54CST2020fixedRateMethod:FriMay1522:04:56CST2020
  实例:任务类ComponentpublicclassMySpringTask{执行结束2秒后执行下次任务Scheduled(fixedDelay2000)publicvoidfixedDelayMethod()throwsInterruptedException{System。out。println(fixedDelayMethod:newDate());Thread。sleep(1000);}}
  上面的例子执行情况如下,每次打印后先等待1秒,然后方法执行结束2秒后再次执行任务,所以是每3秒打印1行内容。fixedDelayMethod:FriMay1522:08:26CST2020fixedDelayMethod:FriMay1522:08:29CST2020fixedDelayMethod:FriMay1522:08:32CST20202。4使用Cron表达式
  Scheduled也支持使用Cron表达式,Cron表达式可以非常灵活地设置定时任务的执行时间。以本节开头的两个需求为例:我们想监控一个重点服务的运行状态,可以每隔1分钟调用下该服务的心跳接口,调用失败时即发出告警信息;我们想在每天凌晨的时候,将所有商品的库存置满,以免早上忘记添加库存影响销售。
  对应的定时任务实现如下:
  实例:任务类ComponentpublicclassMySpringTask{在每分钟的00秒执行Scheduled(cron0?)publicvoidjump()throwsInterruptedException{System。out。println(心跳检测:newDate());}在每天的00:00:00执行Scheduled(cron000?)publicvoidstock()throwsInterruptedException{System。out。println(置满库存:newDate());}}
  Cron表达式并不难理解,从左到右一共6个位置,分别代表秒、时、分、日、月、星期,以秒为例:如果该位置上是0,表示在第0秒执行;如果该位置上是,表示每秒都会执行;如果该位置上是?,表示该位置的取值不影响定时任务,由于月份中的日和星期可能会发生意义冲突,所以日、星期中需要有一个配置为?。
  按照上面的理解,cron0?表示在每分钟的00秒执行、cron000?表示在每天的00:00:00执行。
  Tips:Cron表达式的描述能力很强,此处只是简单提及,感兴趣的同学可以自行查阅相关资料了解更多信息。3。Quartz定时任务
  SpringTask已经可以满足绝大多数项目对定时任务的需求,但是在企业级应用这个领域,还有更加强大灵活的Quartz框架可供选择。
  Quartz官网介绍:企业级的任务调度框架
  举个例子,当我们想根据数据库中的配置,动态地指定商品打折的时间区间时,就可以利用Quartz框架来实现。OK,接下来我们就来具体完整实现下。3。1使用SpringInitializr创建项目
  SpringBoot版本选择2。2。5,Group为com。imooc,Artifact为springbootquartz,生成项目后导入Eclipse开发环境。3。2引入项目依赖
  需要引入Quartz框架相关依赖。
  实例:!QuartzdependencygroupIdorg。springframework。bootgroupIdspringbootstarterquartzartifactIddependency3。3开启定时任务
  同样需要,在启动类上添加EnableScheduling注解,开启定时任务功能。
  实例:SpringBootApplicationEnableScheduling开启定时任务publicclassSpringBootQuartzApplication{publicstaticvoidmain(String〔〕args){SpringApplication。run(SpringBootQuartzApplication。class,args);}}3。4Quartz定时任务开发
  Quartz定时任务需要通过Job、Trigger、JobDetail来设置。Job:具体任务操作类Trigger:触发器,设定执行任务的时间JobDetail:指定触发器执行的具体任务类及方法
  我们先开发一个Job组件:
  实例:打折任务Component注册到容器中publicclassDiscountJob{执行打折publicvoidexecute(){System。out。println(更新数据库中商品价格,统一打5折);}}
  然后在配置类中设定Trigger及JobDetail。
  实例:定时任务配置ConfigurationpublicclassQuartzConfig{配置JobDetail工厂组件,生成的JobDetail指向discountJob的execute()方法BeanMethodInvokingJobDetailFactoryBeanjobFactoryBean(){MethodInvokingJobDetailFactoryBeanbeannewMethodInvokingJobDetailFactoryBean();bean。setTargetBeanName(discountJob);bean。setTargetMethod(execute);returnbean;}触发器工厂BeanCronTriggerFactoryBeancronTrigger(){CronTriggerFactoryBeanbeannewCronTriggerFactoryBean();Corn表达式设定执行时间规则bean。setCronExpression(008?7);执行JobDetailbean。setJobDetail(jobFactoryBean()。getObject());returnbean;}}
  具体分析下上面的代码:触发器设定的Corn表达式为008?7,表示每周六的08:00:00执行1次;触发器指定的JobDetail为jobFactoryBean工厂的一个对象,而jobFactoryBean指定的对象及方法为discountJob与execute();所以每周六的8点,就会运行discountJob组件的execute()方法1次;Corn表达式和执行任务、方法均以参数形式存在,这就意味着我们完全可以根据文件或数据库配置动态地调整执行时间和执行的任务;最后,周六8点的时候,商品都打了5折,别忘了促销结束的时候恢复价格啊。4。小结
  SpringBoot可以利用一个简单的注解,快速实现定时任务的功能。
  说实话我第一次使用Scheduled注解时,完全被这种开箱即用型的简洁震撼了,我的感受是:似乎不能更加简洁了。
  如果感觉SpringTask提供的定时任务机制还不足以满足需求,SpringBoot还可以方便地集成Quartz框架来帮忙。
  开箱即用满足不了,还可以即插即用,确实够人性化的。

新能源汽车天花板,极狐阿尔法S全新HI版上市5月7日,极狐阿尔法S全新HI版正式宣布上市。作为全球首款搭载华为HI全栈智能汽车解决方案的量产车,极狐阿尔法S全新HI版是新能源汽车优化转型的标杆和典范,毫不夸张地说,它的高……人生也有节气优秀作文夏天和妈妈去买菜时,老大爷说,买我的吧,人生也有节气作文。我看见摊上好像堆着山一样粉白的棉花糖,拿起一个,像石头一样生硬地硌着我的手。我说,这柿子又小又硬,哪里有冬天的柿子好。……织毛衣织毛衣前不久,我在找书时,无意中发现了一本封面颜色丰富的书600种彩色棒针编结花样。我想,这书必定花样众多、色彩新颖,非常好看,便找了个位置坐下来,翻开书,迫不及待地欣赏……景德镇游记在这个世界上唯一能吸引我的就是历史悠久的艺术mdash;mdash;所以,在外出游玩的时候我毅然而然的选择了景德镇这个有趣的,历史悠久的景点。我选择了一个最有意思最大的景……适合发朋友圈的唯美文案01。星光与君皆负我,也无山色也无波。02。发自己的光就好,别去吹灭别人的灯。03。星河滚烫,你是人间理想。04。我愿做一枚白昼的月光,不求炫目的荣华,不淆世……神舟十四号载人飞船将于今年6月发射IT之家5月10日消息,据央视新闻,除了天舟四号货运飞船,接下来中国空间站后续在轨建造任务也有了时间表。6月,神舟十四号载人飞船将发射,3名航天员将进入中国空间站组合体,并在轨……自我介绍800字作文自我介绍我有着细细的眉毛,一双眼睛又黑又亮,长长的眼睫毛。温柔是我的外表,刚强是我的内心,调皮是我的本性,天真是我现在的样子给人一种对事情好奇,有点活蹦乱跳的感觉。有一头……描写绿色环保作文绿色是什么的象征?绿色是生命的象征,绿色代表了希望。下面是小编精心收集的描写绿色环保作文,希望能对你有所帮助。描写绿色环保作文【1】小草,在我们生活中随处可见。无论是贫瘠……过去翻开停满灰尘的书,一点一点地读着过去的故事,猛然发现,过去的日子是那么美好。至少还有幻想的余地,而现在,醒目的勾、差,刺眼的分数,一次又一次玩弄着我。父母的唠叨,老师的质问,一……内娱8590旗袍美人,倪妮风情万种,景甜婉约大气旗袍作为中国传统的服装,一方面展现女子曼妙身姿,另一方面展现一个时代特有的气韵。虽然已经过去了这么久,但内娱女明星还是会不断尝试旗袍,展现旗袍的美的同时解锁全新的形象。首……被誉为中国式完美女人,陈道明唯一绯闻对象,她演蛇蝎美人太吸睛规则,在任何行业里都有,更何况是娱乐圈这样的一个名利场当中。作品,流量,演技这些都是作为一名演员必须要有的东西,然而娱乐圈的新旧交替比春夏秋冬的交替来的还要快一些。……游公园作文500字初冬时节,本应该是雨雪纷飞,但在曲靖,天气才正式变凉。就在这样一个暖和的冬日下午,我和小伙伴们相约去森林公园游玩。走进公园大门,清新的空气扑面而来。冬天来了,道路两旁那些……
青春原生态优秀作文都说青春是杯可乐,别把它写成白开水。我很喜欢这种比喻,别说我卖弄个性,如果你真的把这篇文章看完你会发现,一点也不张扬。话题扯回来,青春真的很爽口,很香甜青春是生命之曲是最……难忘的一件事成长的过程中,一定会有一件自己难忘的事。这件事情,不管是开心的、难过的、痛苦的可它是最难忘的。记一次下午,我写完了作业出去玩,刚好碰见了小区里的好朋友,她说:听说悠悠家那……清明时节清明节到了我站在窗台,只得望着一片红花绿树,想着我家乡的外婆与逝去的外公。因为浙江有些远,而我也因为要好好复习,就并未回到故乡到外公的坟墓前去祭拜,去打扫。我的妈妈……六月摩友骑行福利!只有25的夏日避暑胜地免门票!免交通票人们常说最美的风景永远在路上于是便有了许多此生必走一次的路川藏线G318、G317风情的滇藏线,绮丽的青藏线。。。。但其实,不需要走那么远河……109个实用shell脚本,建议收藏!(附pdf)Shell脚本,就是利用Shell的命令解释的功能,对一个纯文本的文件进行解析,然后执行这些功能,也可以说Shell脚本就是一系列命令的集合。Shell可以直接使用在wi……乡村味道的散文什么味?先说说酸味。东干脚的三月,难得有几个晴天。人们窝在屋里,早晚烤火,中午有了点热气,男的做一些手艺活,编个竹筐什么的;女的做点针线活,纳个鞋底什么的。男人不声不响,……换工作作文600字从前,森林里住着小鸟、老鼠和一根香肠,它们三个是好朋友。它们生活在一个套房里,各自都承担着一份家务事。小鸟出去捡柴,老鼠去挑去水,香肠在家里做饭。天天如此,它们的生活还算……以爱国为主题的800字作文爱国是一句非常不起眼,非常渺小的话;一个举动;一件事情。说它大,我们中国13亿人民,能做到的又有几人。下面是小编为大家带来的以爱国为主题的800字作文,欢迎阅读。【篇一:……很喜欢的一段话,这或许是我们最开始的初衷01我们明知道以后会死,却还要努力地活着,活得那么不容易,静下心来问问自己,人活一辈子到底是为了什么?人生在世,如果只是一味地计较是非对错,会少很多不同的朋友,少很……好喜欢合创Z03,好喜欢绿的绿色,充满着生机和希望的憧憬,填充着生命的充实和活力。绿色的雨季为生命带来了不可或缺灵力,为生活带来了无与伦比的魅力。绿色是最美妙的颜色,它纯粹、精致而温柔。陆蠡说:绿是……帮助别人的感觉,真好作文雷锋叔叔是做好事的楷模,我从小就很崇拜他。他教会我帮助别人会使自己的心灵得到满足;会使自己的心情愉快;会使自己得到别人的尊重。我觉得帮助别人的感觉,真好!身边很多事情,我……发生什么事了?亏了12年的爱奇艺突然赚钱了?爱优腾这个组合,大家应该不陌生。这三兄弟是长视频三巨头,也是亏损三巨头,十年烧掉1000多亿,盈利遥遥无期的事迹在江湖一直流传。但,现在,这个组合要没了。因为……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网