example - my icon java
Expresión cron de primavera para todos los días 1: 01: am (6)
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 primavera 4.
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 sintaxis aquí?
@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
// ...
}
Expresión cron de primavera 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
Para mi programador, 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 programador
@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 here .
Nota: La versión de My Spring framework es: 4.0.7.RELEASE
Prueba con:
@Scheduled(cron = "0 1 1 * * ?")
A continuación puede encontrar los patrones de ejemplo del foro de primavera:
* "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-annotation-support
Puede usar anotar su método con @Scheduled(cron ="0 1 1 * * ?")
.
0 - es por segundos
1- 1 minuto
1 hora del día
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.