Cron表达式以及定时任务配置

时间:2022-07-02 07:47:35


Cron表达式的格式: 秒 分 时 日 月 周 年
表达式范围: 允许的特殊字符
1 Seconds (0~59) , - * /
2 Minutes (0~59) , - * /
3 Hours (0~23) , - * /
4 Day-of-Month (1~31 但是要注意有些月份没有31天 ) , - * ? / L W C
5 Month (0~11,或者"JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV,DEC") , - * /
6 Day-of-Week (1~7,1=SUN 或者"SUN, MON, TUE, WED, THU, FRI, SAT”) , - * ?/L C #
7 Year (1970~2099) 可选/可不选
0 0 12 ? * WED ( 每个星期三的中午12点执行 )

/ : 被用于指定增量 "0/15" 表示从0分钟开始 每15分钟执行一次 "3/20" 表示从第三分钟开始 每20分钟执行一次
L : 用于 day-of-month 和 day-of-week
月: "L" 表示一个月的最后一天 一月31号 三月30号
周: "L" 表示一个星期的最后一天 也就是7或者SAT
表达式例子:
0 * * * * ? //每分钟触发一次
0 0 * * * ? //每天每小时触发一下
0 0 10 * * ?//每天10点触发一下

0 30 22 * * ? //每天十点半触发一下

0 0 23 L * ? 每月最后一天23点执行一次

<value>0 20 6 * * ?</value>

0 20 6 * * ? 每天六点20跑一下

-----定时任务配置 在 applicationContext-timer.xml里面

总共是三个配置:
--------------------------------------------------
<!--定时开始(插入卡应用错误信息)-->
<bean id="saveErrCardAppInfoUtil" class="com.sand.util.CreateErrCardAppInfoUtil">
<property name="cardAppErrService" ref="cardAppErrService"/>
</bean>

<bean id="saveErrCardAppInfoInvokingJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="saveErrCardAppInfoUtil"/>
</property>
<property name="targetMethod">
<value>executeCreate</value>
</property>
</bean>
<bean id="saveErrCardAppInfoTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="saveErrCardAppInfoInvokingJobDetail"/>
</property>
<property name="cronExpression">
<value>0 30 6 * * ?</value>
</property>
</bean>
<!--定时结束(插入卡应用错误信息)-->
ref 一层层 应用 的 CreateErrCardAppInfoUtil --- ( executeCreate )
spring.jar 包---------scheduling---quartz
--------------------------------------------------