00:00
前面我们提到在业务流程图的第11个步骤,我们要定时查询迟迟没有收到支付结果通知的订单,那么这个时候呢,我们就需要引入一个定时任务,那因此呢,我们引入的是spring中默认的定时任务spring task好,我们打开我们的后台程序,打开我们程序当中的主启动类,在主启动类当中呢,我们引入spring task好,引入的具体的方式呢,就是在这个上写一个注解,叫做enable。好,接下来呢,我们的应用程序呢,就有了定时任务的功能了,那么我们来测试一下,在我们的项目下,我们创建一个包。Task在这个下面呢,我们创建一个类。微信配。
01:00
那么这个类呢,我们希望应用程序启动的时候呢,它能够被自动的初始化出来,所以写个component,同时呢,我们希望在这个里面呢,用日志的形式呢,帮助我们先测试一下定时任务,那我们来创建一个方法叫TASK1哈,那么我们希望呢,在这个方法当中呢,用日志的形式呢,打印出一些内容来,比如说TASK1被执行。好,那么如何让这个TASK1定时的被执行呢?这个里面呢,我们需要写一个schedule的注解,那么在的注解当中呢,我们可以配一个Chrome表达式,这个表达式呢,实际上是linu系统当中的一个功能哈,那么spring里面呢,也引入了这样的一个表达式。好,我们来说一下这个表达式的具体的内容,那么这个表达式呢,一共有六部分组成啊,这六部分呢,分别是秒。
02:04
分时日月、周,其中呢,日和周呢是互斥的,或者是说呢,不能同时指定。指定其中一个。则另一个。设置为问号的意思呢,就是不指定啊,所以在这个地方我们有一个第一个表达策略,就是不指定的意思,好那假设说呢,我们将周呢设置为问号,将其他的字段呢都设置为星,那星呢就是比如说在秒,这就是每秒都执行,在分,这就是每分都执行,在十,这就是每小时都执行,所以这个表达式呢,就每个月,每天,每小时,每分每秒,那么它都要执行定时方法,好那么我们可以简单的去测试一下。
03:17
启动这个程序。好,那你会发现呢,现在我们呢,每秒都执行了这样的一个定时任务。所以这个星的意思是,我们以秒为例啊,就是每秒都执行。好,那还有一个表达策略呢,就是一至三,那意思很明确,就是。
04:01
从第一秒开始执行到第三秒。结束执行好,那么还有一个呢是零。斜线三,那这个意思呢,就是从地里秒开始。每隔三秒执行一次,好,然后接下来呢,还有一个123,在指定的第一秒,第二秒和第三秒执行,当然如果你写456的话,那么它就会在指定的每分钟的第四秒,第五秒和第六秒开始执行啊。
05:12
那接下来呢,我们测一个从第零秒开始,每隔三秒执行一次的这个策略。好,现在呢,你会发现我们的应用程序呢,是每隔三秒都执行一次的。好,那这就是我们的定时任务的一个基本的使用的方式。
我来说两句