2010-08-09 10 views
18

Estoy usando Quartz Scheduler usando Spring. Quiero configurar con el mismo horario siguiente:Expresión de Cron Cuarzo: Ejecutar trabajo Cada 10 minutos a partir de AHORA (inmediatamente)

Ejecutar trabajo cada 10 minutos a partir de ahora

estoy usando siguiente expresión para el mismo.

0 */10 * * * ? 

pensé * en el campo minutos sería hacer que se ejecute el primer minuto, pero no lo hace de esa manera. Se ejecuta los primeros 10 minutos desde ahora y luego cada 10 minutos después. ¿Puede alguien sugerirme la razón de este comportamiento y la solución a mi problema también?

Respuesta

9

compruebe el minuto en su momento y agréguelos como una lista a su crontrigger. si se inicia el gatillo en el minuto 12, por ejemplo, añadir

0 2,12,22,32,42,52 * * * ? 

como su expresión cron

Editar:

Otra solución sería definir un simpletrigger que se repite cada diez minutos

SimpleTrigger trigger = new SimpleTrigger("myTrigger", 
              null, 
              new Date(), 
              null, 
              SimpleTrigger.REPEAT_INDEFINITELY, 
              10L * 60L * 1000L); 
+0

Gracias que funcionaría, pero eso no es muy inteligente, ¿verdad? Estoy trabajando en una gran aplicación que en principio requerirá que se inicie CronJob. No quiero cambiar la expresión de cron cada vez que voy a iniciar mi aplicación. ¿Tenemos alguna solución alternativa por favor? –

+1

me temo que la versión más inteligente no se puede configurar durante la primavera. –

+0

puede agregar @PostContruct antes de su método, por lo tanto, después de que su bean se inicialice, se ejecutará por primera vez. – hiway

0

Puede usar algo como

0 1-59/10 * * * ? 

Eso activará el trabajo en cualquier minuto y 10 minutos después de eso. No lo probé, pero se ve bien. :)

-2
*/10 * * * * 

cada 10 minutos a partir del momento de crear la tarea cron, ya sea que se prefiera (crontab del usuario, /etc/cron.d/, ...).

+2

en cuarzo, los crones pueden ejecutarse cada segundo. Su solución se ejecutará cada 10 segundos en la sintaxis de programación cron de cuarzo. Esto me hizo tropezar cuando tenía un trabajo que estaba probando ejecutar cada minuto, así que usé la sintaxis cron de gnu (como la anterior), y de hecho lo ejecuté cada segundo de cada minuto. ughhhh ..... hablamos sobre la prueba de concurrencia ... –

Cuestiones relacionadas