La expresión cron de la tarea de sincronización de Java se ejecuta una vez a la semana y el tiempo de ejecución es diferente del tiempo real.

Es una función muy común para Java Springboot usar la programación para ejecutar tareas de sincronización. Hay un sitio web muy utilizado que es el generador de expresiones Cron en línea, pero recientemente encontré un problema en este sitio web.

Quiero ejecutarlo una vez cada lunes a las 13:00. Verifiqué la expresión que escribí en este sitio web y está bien. Además, no hay problema en compararlo con el calendario, ¡¡¡pero ahora ha aparecido el problema !!!

 

 Pero al mirar el registro del servidor, descubrí que la ejecución se realizó el 16 de mayo (martes), que es un día después de la hora de configuración de la tarea programada.

¡¡¡Esto, esto, esto es demasiado escandaloso!!!!

Después de la verificación, si se ejecuta una vez por semana, el lunes es el 1 y el martes es el 2, ¡recuerde no agregar 1 a la fecha!

Por ejemplo: ejecutar una vez cada lunes a la 1:00 pm:

@Programado(cron = "0 0 13 ? * 1")

La razón:

Diferentes representaciones de expresiones cron en horarios de Quartz y Springboot sobre la semana (día de la semana)

Explicación del código fuente oficial de Quartz (org.quartz.CronExpression):

La expresión cron en Quartz puede estar compuesta por hasta 7 campos, a saber: segundo, minuto, hora, día, mes, semana, año y el último campo "año" puede estar vacío;

Para el día de la semana, es decir, "Día de la semana", los valores 1, 2, 3, 4, 5, 6 y 7 representan respectivamente "DOM, LUN, MAR, MIÉ, JUEVES, VIE , SE SENTÓ";

Análisis de expresión cron de programación SpringBoot:

Reemplace "DOM, LUNES, MAR, MIÉ, JUEVES, VIE, SÁB" en la cadena cronExpression por "0, 1, 2, 3, 4, 5, 6" respectivamente;

Resumen: si no puede entenderlo, no use números para expresar el día de la semana y use abreviaturas en inglés directamente: UN, MON, TUE, WED, THU, FRI, SAT.

Supongo que te gusta

Origin blog.csdn.net/zlfjavahome/article/details/132566784
Recomendado
Clasificación