如何在Spring Scheduler运行时记录

时间:2018-04-08 11:04:50

标签: spring cron spring-scheduled

我正在使用cron表达式用于spring调度程序,而expression的值是由spring bean使用spel动态提供的。

@Autowired
 private PurgeProperties purgeProperties;

@Scheduled(cron = "#{@purgeProperties.cronExpression}", zone = "#{@purgeProperties.zone}")
public void purgeData() throws UnknownHostException
{
           startPurge();
}

一切正常工作只是我想在调度程序触发时记录,因为cron表达式是由另一个bean在运行时提供的。所以只想知道正确的表达式是否映射了通过文件提供给属性bean的内容。

1 个答案:

答案 0 :(得分:1)

尝试以下代码

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.support.CronSequenceGenerator;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.util.Date;

''''
''''
@PostConstruct
public void init() {
    CronSequenceGenerator cronTrigger = new CronSequenceGenerator(purgeProperties.cronExpression);
    Date next = cronTrigger.next(new Date());

    System.out.println("Next Execution Time: " + next);
}