2011-05-21 734 views
5

如何在早上9点AM的每个月的25号写入cron表达式来触发函数?Cron表达式在每个月的25上触发

当我执行这个代码,

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() 
    { 
     /* */ 
    } 
} 

我得到的错误,

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) 

回答

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

这是1月1日止,并且时间是无效的,你会想这相反:

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

参考:CronSequenceGenerator

+0

谢谢大家,现在的工作 – elle 2011-05-21 10:56:49

+0

我的Cron表达我的数据库,我取them.firstly我怎么可能能c检查cron表达式,然后由cron表达式来触发。 – UmaShankar 2016-01-27 06:13:42

相关问题