2011-05-21 21 views
5

¿Cómo escribir la expresión cron para activar una función el día 25 de cada mes a las 9 A.M de la mañana?Expresión cron para activar el 25 de cada mes

Cuando ejecuto el código,

import org.springframework.scheduling.annotation.Scheduled; 
import org.springframework.stereotype.Service; 
@Service 
public class PayrollSchedulerImpl implements PayrollScheduler{ 

    @Scheduled(cron="0 9 25 1 * ?") 
    public void calculateSalaryScheduled() 
    { 
     calculateSalary(); 
    } 

    public void calculateSalary() 
    { 
     /* */ 
    } 
} 

consigo el error,

java.lang.StackOverflowError 
    sun.util.calendar.ZoneInfo.getOffsets(Unknown Source) 
    sun.util.calendar.ZoneInfo.getOffsets(Unknown Source) 
    java.util.GregorianCalendar.computeFields(Unknown Source) 
    java.util.GregorianCalendar.computeTime(Unknown Source) 
    java.util.Calendar.updateTime(Unknown Source) 
    java.util.Calendar.complete(Unknown Source) 
    java.util.Calendar.get(Unknown Source) 
    org.springframework.scheduling.support.CronSequenceGenerator.doNext(CronSequenceGenerator.java:130) 

Respuesta

15
@Scheduled(cron="0 9 25 1 * ?") 

Este es el 1 de enero solamente, y el tiempo no es válida, usted querrá este en su lugar:

@Scheduled(cron="0 0 9 25 * ?") 

Referencia:CronSequenceGenerator

+0

gracias, funciona ahora tengo – elle

+0

expresión Cron en mi DB Estoy ir a buscar them.firstly cómo podría capaz de c Compruebe la expresión Cron y luego para activar la expresión de Cron. – UmaShankar

Cuestiones relacionadas