Spring中Quartz的配置及corn表达式

  Quartz可以用来执行任务调度功能,如间隔一定时间调用执行任务。用起来还是蛮方便的。只要将你要调用的类配置到Spring配置文件即可。

 

在Spring的配置文件中配置Quartz。

复制代码
 1 <!-- 要调用的工作类 -->
 2        <bean id="quartzJob" class="com.aisino.projects.supply.task.Quartzjob"></bean>
 3        <!-- 定时任务活动生效与失效 -->
 4        <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 5            <!-- 调用的类 -->
 6            <property name="targetObject">
 7                <ref bean="quartzJob"/>
 8            </property>
 9            <!-- 调用类中的方法 -->
10            <property name="targetMethod">
11                <value>Job</value>
12            </property>
13        </bean>
14        <!-- 定义触发时间 -->
15        <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
16            <property name="jobDetail">
17                <ref bean="jobtask"/>
18            </property>
19            <!-- cron表达式 -->
20            <property name="cronExpression">
21                <value>0 1 0 * * ?</value>
22            </property>
23        </bean>
24 <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  -->
25        <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
26            <property name="triggers">
27                <list>
28                    <ref bean="doTime"/>
29                </list>
30            </property>
31        </bean>
复制代码

  如上图,在第2行配置要调用的类,第11行配置要调用的方法,第21行配置要调用的时间,即可。

 

  时间的话。这里用的corn表达式。各参数如下:

字段    允许值        允许的特殊字符

秒     0-59         , - * / 
分     0-59         , - * / 
小时    0-23         , - * / 
日期    1-31         , - * ? / L W C 
月份    1-12 或者 JAN-DEC  , - * / 
星期    1-7 或者 SUN-SAT   , - * ? / L C # 
年(可选) 留空, 1970-2099   , - * /

 

“?”字符:表示不确定的值

“,”字符:指定数个值

“-”字符:指定一个值的范围

“/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m

“L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X

“W”字符:指定离给定日期最近的工作日(周一到周五)

“#”字符:表示该月第几个周X。6#3表示该月第3个周五

 

  所以:上面例子里表示的就是:每天00点01分的时候执行一次Quartzjob类的Job方法。如果需要多个任务调度,只需要重复写上面4个bean中的第2、3个,然后将触发时间配置进第4个bean的list里即可。当然前提是你的调度都要存在一个类里~

 

posted @   PC君  阅读(2827)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)

喜欢请打赏

扫描二维码打赏

支付宝打赏

点击右上角即可分享
微信分享提示