我正在使用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的内容。
答案 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);
}