Estoy tratando de ejecutar mi código en un horario fijo, basado en una expresión cron de Spring. Me gustaría que el código se ejecute todos los días a la 1: 01 am. Intenté la siguiente expresión, pero esto no me funcionó. ¿Qué hay de malo con la sintaxis aquí?
@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
// ...
}
Respuestas:
Probar con:
A continuación puede encontrar los patrones de ejemplo del foro de primavera:
La expresión de Cron está representada por seis campos:
(*)
significa coincidir con cualquier*/X
significa "cada X"?
("sin valor específico"): útil cuando necesita especificar algo en uno de los dos campos en los que se permite el carácter, pero no en el otro. Por ejemplo, si quiero que mi gatillo se active en un día particular del mes (por ejemplo, el 10), pero no me importa qué día de la semana sea, pondría "10" en el día. de campo mensual y "?" en el campo del día de la semana.PD: para que funcione, recuerde habilitarlo en el contexto de su aplicación: https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html#scheduling- soporte de anotación
fuente
Para mi programador, lo estoy usando para disparar a las 6 am todos los días y mi notación cron es:
Si quieres 1: 01: am, configúralo en
Código completo para el planificador
** MUY IMPORTANTE
Para estar seguro acerca de la corrección del tiempo de disparo de su programador, debe establecer el valor de la zona de esta manera (estoy en Estambul):
Puede encontrar los valores completos de la zona horaria desde aquí .
Nota: Mi versión de Spring Framework es: 4.0.7.
fuente
<task:scheduled ref="paypalCronJob" method="runTask" cron="0 0 6 * * * ?"/>
?Puede usar anotar su método con
@Scheduled(cron ="0 1 1 * * ?")
.0 - es por segundos
1- 1 minuto
1 hora del día.
fuente
Algo falta en la respuesta de gipinani
Esto se ejecutará en 1.01 y 13.01. Se puede usar cuando necesita ejecutar el trabajo sin un patrón varias veces al día.
Y el atributo de zona es muy útil cuando realiza implementaciones en servidores remotos. Esto se introdujo con la primavera 4.
fuente
Una cosa que he notado es: spring CronTrigger no es cron. Puede terminar con 7 parámetros en una expresión cron válida (que puede validar en cronmaker.com) y luego no aceptarla. La mayoría de los casos simplemente eliminas el último parámetro y todo funciona bien.
fuente
Spring cron expresión para todos los días 1: 01: am
@Scheduled (cron = "0 1 1? * *")
Para más información verifique esta información:
https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm
fuente