Tarea de sincronización de cuarzo
1. Dependencias que deben importarse
Debido a que estamos usando el marco ssm y Spring tiene cuarzo integrado, también necesitamos importar un paquete de dependencia asociado con Spring y Quartz, de modo que podamos usar directamente el contenido de Quartz en Spring.
Paquete de cuarzo integrado con resorte
2. Escriba la clase de trabajo que se ejecutará
package com.ceh.quartz;
public class MyJob {
public void job(){
System.out.println("Hello Quartz!");
}
}
3. Necesito usar la clase
4. Configure el entorno de acuerdo con la clase en la figura anterior.
<!--配置quartz-->
<!--1.把自定义的job类放入spring工厂中-->
<bean id="myJob" class="com.ceh.quartz.MyJob"></bean>
<!--2.配置你要执行的工作-->
<bean id="jobDetailFactoryBean" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!--指定任务的类-->
<property name="targetObject" ref="myJob" />
<!--指定任务中的方法-->
<property name="targetMethod" value="job" />
</bean>
<!--配置时间间隔-->
<bean id="cronTriggerFactoryBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<!--你要配置那个任务的时间间隔-->
<property name="jobDetail" ref="jobDetailFactoryBean" />
<!--时间间隔的表达式-->
<property name="cronExpression" value="0/3 * * * * ?" />
</bean>
<!--执行定时,课程表-->
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<!--将指定的任务注入-->
<property name="triggers">
<array>
<ref bean="cronTriggerFactoryBean"></ref>
</array>
</property>
</bean>
Nota: Al
configurar los parámetros en MethodInvokingJobDetailFactoryBean, debe existir uno de los dos parámetros de la figura siguiente; de lo contrario, se informará un error
El error:
Una vez completada la configuración anterior, se puede iniciar el proyecto:
5. expresión cron
* * * * * ? *
秒 分 时 日 月 星期 年
上边演示中的表达式即为每年每月每日每时每分,从0秒开始,每三秒执行一次
Se permiten símbolos especiales
Segundos 0-59, - * /
Minutos 0-59, - * /
Horas 0-23, - * /
Fecha 1-31, - *? / LWC
Mes 1-12 o JAN-DEC, - * /
Semana 1-7 O SUN-SAT, - *? / LC #
年 (opcional) Dejar en blanco, 1970-2099, - * /
*,代表和的意思
*-代表之间
**通配符,代表所有
*x/y 从x开始,每y执行一次
*?只能在日和星期存在,一个表达式中,日和星期只能存在一个,不想要那个,就使用?
*L代表最后的意思(Last,放在日上,就是每个月最后一天)
*W和日期临近的工作日,如果选择的日是周日,那么他就会选择周一代表日
*月份和星期可以使用英文缩写
*星期是1-7也就是7是周六
Extracto
0 0 10,14,16 * *? Todos los días a las 10 a. M., 2
p. M. Y 4 p. M. 0 0/30 9-17 * *? Cada media hora
0 0 12? * MIÉ significa todos los días.
Todos los miércoles a las 12 mediodía "0 0 12 * *?" Activar
"0 15 10? * *" a las 12 del mediodía todos los días Activar
"0 15 10 * *?" a las 10:15 todos los días Activar
"0 15 10 a las 10:15 todos los días * *? * "Activar
" 0 15 10 * *? 2005 "a las 10:15 todos los días y activar
" 0 * 14 * *? "A las 10:15 todos los días en 2005 todos los días de 2 p.m. a 2:59 p.m. 1 minuto gatillo
"0 0/5 14 * *?" Trigger cada 5 minutos
de 2 pm a 14:55 todos los días, el gatillo "0 0/5 14,18 * *?" todos los días 14:00-14:55 gatillo
"0 0-5 14 * *?" Cada 5 minutos durante el período y entre las 6 pm y las 6:55 pm. Activar
"0 10,44 14? 3 MIÉ cada 1 minuto entre las 2 pm y las 2:05 pm cada el día “
0 15 10? * LUN-VIE” se activa a las 2:10 y 2:44 pm el miércoles de marzo de cada año.
“0 15 10 15 *?” se activa a las 10:15 de lunes a viernes a las 10 am el día 15 de cada mes: 15 activan
"0 15 10 L *?" activan a las 10:15 a. m. el último día de cada mes
"0 15 10? * 6L" activan a las 10:15 a. m. el último viernes de cada mes mes
"0 15 10? * 6L 2002-2005" se activa a las 10:15 a. M. El último viernes de cada mes de 2002 a 2005
"0 15 10? * 6 # 3" se activa a las 10:15 a. M. El tercer viernes de cada mes