Expresión cron de spring para todos los días 1: 01: am

Estoy intentando que mi código se ejecute 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. Probé la siguiente expresión, pero esto no se activó para mí. ¿Qué hay de malo con la syntax aquí?

@Scheduled(cron = "0 1 1 ? * *") public void resetCache() { // ... } 

Prueba con:

 @Scheduled(cron = "0 1 1 * * ?") 

A continuación puede encontrar los patrones de ejemplo del foro de spring:

 * "0 0 * * * *" = the top of every hour of every day. * "*/10 * * * * *" = every ten seconds. * "0 0 8-10 * * *" = 8, 9 and 10 o'clock of every day. * "0 0 8,10 * * *" = 8 and 10 o'clock of every day. * "0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30 and 10 o'clock every day. * "0 0 9-17 * * MON-FRI" = on the hour nine-to-five weekdays * "0 0 0 25 12 ?" = every Christmas Day at midnight 

La expresión de Cron está representada por seis campos:

 second, minute, hour, day of month, month, day(s) of week 

(*) significa emparejar 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 disparador se dispare en un día determinado del mes (por ejemplo, el día 10), pero no me importa qué día de la semana ocurra, pondría “10” en el día- campo de mes 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- anotación-soporte

Para mi progtwigdor, lo estoy usando para disparar a las 6 am todos los días y mi notación cron es:

 0 0 6 * * * 

Si quieres 1: 01: am, configúralo para

 0 1 1 * * * 

Código completo para el progtwigdor

 @Scheduled(cron="0 1 1 * * *") public void doScheduledWork() { //complete scheduled work } 

** MUY IMPORTANTE

Para estar seguro de la corrección del tiempo de activación de su planificador, debe establecer un valor de zona como este (estoy en Estambul):

 @Scheduled(cron="0 1 1 * * *", zone="Europe/Istanbul") public void doScheduledWork() { //complete scheduled work } 

Puede encontrar los valores completos de la zona horaria desde aquí .

Nota: La versión de My Spring framework es: 4.0.7.RELEASE

Puede usar anotar su método con @Scheduled(cron ="0 1 1 * * ?") .

0 – es por segundos

1- 1 minuto

1 hora del día

Algo falta en la respuesta de gipinani

 @Scheduled(cron = "0 1 1,13 * * ?", zone = "CST") 

Esto se ejecutará en 1.01 y 13.01. Se puede usar cuando necesite 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 fue introducido con la spring 4.

Una cosa que noté es que 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 aceptarlo. La mayoría de los casos, simplemente eliminas el último parámetro y todo funciona bien.

Expresión cron de spring para todos los días 1: 01: am

@Scheduled (cron = “0 1 1? * *”)

para obtener más información, consulte esta información:

https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm