Spring Scheduler
Buenas, quiero ejecutar un metodo cada 10min, el metodo es muy sencillo solo manda a imprimir por cosola, pero me envia el siguiente error: java.lang.IllegalArgumentException: Only no-arg methods may be annotated with @Scheduled.
Mi contexto:
La clase con el metodo anotado:
Mi Test:
Supongo que mi problema se encuentra en la anotación: @Scheduled(cron="0/10 * * * * ?") pero no se por que, alguien que me pueda orientar?
- Inicie sesión o regístrese para enviar comentarios
Sin argumentos
Los métodos que debes usar con ésa anotación (
) deben ir sin argumentos; según recuerdo, para configurar una tarea con argumentos, es otra forma... pero no me creas, checa las docs de Spring.
interrogación
Para qué es la interrogación? nunca la había visto en notación de crontab. si mal no recuerdo es minuto, hora, día del mes, mes, y día de la semana... entonces el sexto, la interrogación, es el comando a ejecutar? tipo un parámetro de JDBC?
En fin, el error es muy claro: No puedes ponerle @Scheduled a métodos que tienen parámetros y estás anotando un método con un parámetro. La razón es obvia; cuando se ejecuta el método cada X tiempo, qué parámetro se le pasaría? por eso no pueden tener parámetros los métodos que se ejecutan cada X tiempo.
Podrias intentar
Only no-arg methods may be annotated with @Scheduled.
el ?
Si pones el ? al final de una hora, se ejecuta todos los dias... si despues del ? le pones una fecha (mes dia) significa que se ejecuta en ese mes y ese dia de todos los años. Si le pones un año despues del ?, significa que se ejecuta todos los dias de ese año ('nomas).
Cron Expressions
Huuuuy, buenisimo, encontre una tabla con ejemplos de Cron Expressions
creo que les faltó cuando quieres que se ejecute solo ciertos dias, pero es obvio que se ponen los dias en separados por coma.
;)
Yo lo heche a andar!
Muchas gracias a todos por sus respuestas, como lo indico ezamudio un metodo que contiene parametros no puede anotarse con @Scheduled y la solución que propone paranoid_android lo resuelve. Las tablas de los ejemplo de crones que menciona java.daba.doo me sirvieron de mucho.
Gracias