肝火旺的症状,松露,宫灯-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜

admin 2个月前 ( 07-12 22:28 ) 0条评论
摘要: 但鉴于系列文章篇幅较大,所以笔者想再针对这个问题,再梳理下整个流程。具体实现方式第一种是使用Spring自带的定时任务处理器@Scheduled注解第二种就是使用第三方框架Quar...

前语

前两天,小编在一篇面经中忽然看到阿里的这样一道面试题:

在Spring Bo爱至暮夏ot 中,能完成守时使命的办法有哪几种?

假如你看e商赢过小编关于微服务之Spring Boot的往期博文,相信你必定能够给出一个武当三丰太极剑55式不错的答案。

但鉴于系列文章篇幅较大,所以笔者想再针对这个问题,再整理下整个肝火旺的症状,松露,宫灯-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜流程。

详细完成办法

  • 第一种是运用 Spring 自带的守时使命肝火旺的症状,松露,宫灯-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜处理器 @Scheduled 注解
  • 第oldmangay二种便是运用第三方结构 Quartz
  • 第三种运用Timer

Spring Boot 源自 Spring+SpringMVC ,因而天然具有这两个 Spring 中的守时使命完成战略,当然也支撑 Quartz,本文咱们就来看下 Spring Boot 中这两种守时使命的完成办法。

第一种:@Scheduled

运用 @Scheduled 非愿望射雕常简略,直接创立一个 Spring Boot 项目,而且增加 web 依靠 spring-boot-starter-web,项目创立成功后,增加 @EnableScheduling 注解,敞开守时使命:

接下来装备守时使命:

  1. 首要运用 @Scheduled 注解开肝火旺的症状,松露,宫灯-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜启一个守时使命。
  2. fixedRate 表明使命履行之间的时刻马紫菜距离,详细是指两次使命的开端时刻距离,即第2次使命开端时,第一次卖身公主使命或许还没完毕。
  3. fixedDelay 表明使命履行之间的时刻间沈昕睿隔,详细是指本次使命完毕到下次使命开端之间的时刻距离。
  4. initialDelay 表明初次使命发动的延迟时刻。
  5. 一切时刻的单位都是毫秒。

上面这是一个根本用法,除了这几个根本特点之外,@Scheduled 注解也支撑 cron 表达式,运用 cron 表达式,能够非常丰富的描绘守时使命的时刻。cron 表达式格局如下:

[秒] [分]好老板进销存 [小时] [日] [月] [周] [年]

详细取值如下:

这一块需求咱们留意的是,月份中的日期和星期或许会起抵触,因而在装备时这两个得有一个是 ?

通配符意义:

  • ?表明不指定值,即不关心某个字段的取值时运用。需求留意的是,月份中的日期和星期或许会起抵触,因而在装备时这两个得有一个是 ? *
  • * 表明一切值,例如:在秒的字段上设置 *,表明每一秒都会触发 *
  • , 用来分隔多个值,例如在周字段上设置 "MON,WED,FRI" 表明周一,周三和周五触发 *
  • -表明酒道网区间,例如在秒上设置 "10-12",表明 10,11,12秒都会触发 *
  • /用于递加触发,如在秒上面设置"5/15" 表明从5秒开端,每增15秒触发(5,20,35,50) *
  • #序号(表明每月的第几个周几),例如在周字段上设置"6#3"表明在每月的第三个周六,(用 在母亲节和父亲节再适宜不过了)
  • 周字段的设置,若运用英文字母是不区别大小写的 ,即 MON 与mon相同 *
  • L 表明最终的意思。在日字肝火旺的症状,松露,宫灯-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜段设置上,表明当月的最终一天(根据当时月份,假如是二月还会主动判别是否是润年), 在周字段上表明星期六,相当于"7"或"SAT"(留意周日算是第一天)。假如在"L"前加王千慧裸贷上数字,则表明该数据的最终一个。例如在周字段上设置"6L"这样的格局,则表明"本月最终一个星期五" *
  • W表明离指定日期的最僵约之无限饲养近工作日(周一至周五),例如在日字段上设置"15W",表明离每月15号最近的那个工作日触发。假如15号正好是周六,则找最近的周五(14号)触发, 假如15号是周未,则找最近的下周一(16号)触发,假如15号正好在工作日(周一至周五),则就在该天触发。假如指定格局为 "1W",它则表明每月1号仁青拉姆往后最近的工作日触发。假如1号正是周六,则将在3号下周一触发。(注,"W"前只能设置详细的数字,不允许区间"-") *
  • L 和 W 能够一组合运用。假如在日字段上设置性博会"LW",则表明在本月的最终一秦江灏个工作日触发(一般指发工资 ) *

例如,在 @Scheduled 注解中来一个简略的 cron 表达式,每隔5肝火旺的症状,松露,宫灯-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜秒触发一次,如下:

上面肝火旺的症状,松露,宫灯-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜介绍的是运用 @Scheduled 注解的办法来完成守时使命,接下来咱们再来看看怎么运用 Quartz 完成守时使命。

第二种:Quartz

一般在项目中,除非守时使命涉及到的事务实在是太简略,运用 @Scheduled 注解来处理守时使命,不然大部分状况或许都是运用 Quartz 来做守时使命。在 Spring Boot 中运用 Quartz ,只需求在创立项目时,增加 Quartz 依靠即可:

项目创立完成后,也需求增加敞开江西紫宸科技有限公司守时使命的注解:

Quartz 在运用过程中,有翡翠贝儿两个要害概念,一个是JobDetail(要做的工作),另一个是触发器(什么时候做),要界说 JobDetail,需求先界说 Job,Job 的界说有两肝火旺的症状,松露,宫灯-竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜种办法:

第一种办法,直接界说一个Bean:

关于这种界说办法说两点:

  1. 首要将这个 Job 注册到 Spring 容器中。
  2. 这种界说办法有一个缺点,便是无法传参。

第二种界说办法,则是承继 QuartzJobBean 并完成默许的办法:

和第1种办法比较,这种办法支撑传参,使命发动时,executeInternal 办法将会被履行。

Job 有了之后,接下来创立类,装备 JobDetail 和 Trigger 触发器,如下:

关于这个装备说如下几点:

  1. JobDetail 的装备有两种办法:MethodInvokingJobDetailFactoryBean 和 JobDetailFactoryBean 。
  2. 运用 MethodInvokingJobDetailFactoryBean 能够装备方针 Bean 的姓名和方针办法的姓名,这种办法不支撑传参。
  3. 运用 JobDetailFactoryBean 能够装备 JobDetail ,使命类承继自 QuartzJobBean ,这种办法支撑传参,将参数封装在深宫离凰曲 JobDataMap 中进行传递。
  4. Trigger 是指触发器,Quartz 中界说了多个触发器,这儿向咱们展现其间两种的用法,SimpleTrigger 和 CronTrigger 。
  5. SimpleTrigger 有点类似于前面说的 @Scheduled 的根本用法。
  6. CronTrigger 则有点类似于 @Scheduled 中 cron 表达式的用法。

悉数界说完成后,发动 Spring Boot 项目就能够看到守时使命的履行了。

第三种:Timer

这个现在在项目顶用的较少,直接贴demo代码。详细的介绍能够检查api

总结

到这儿,再回到最初咱们说到的问题,或许你能更好的答复。村庄小子这儿主要向咱们展现了 Spring Boot 中整合三种守时使命的办法,整合成功之后,剩余的用法根本上就和在 SSM 中运用共同了,不再赘述。

假如你喜爱本文,能够重视、转发、保藏一条龙;

假如你有不同的见地,也欢迎在下方谈论留言!

文章版权及转载声明:

作者:admin本文地址:http://lovetoeros.com/articles/1286.html发布于 2个月前 ( 07-12 22:28 )
文章转载或复制请以超链接形式并注明出处竞技宝电竞_竞技宝电竞官网_竞技宝电竞竞猜