小记
在做调价执行的定时任务时,使用Spring QuartZ Cron表达式,将时间配置在spring-task.xml配置文件中。在开发web页面的时候,需要取出Cron时间告诉营业员,价格将在XX年XX月XX日 XX:XX : XX开始执行。
取Cron值很简单,CronTriggerImpl有封装好的方法getNextFireTime()可以获取下次执行时间,使用DateFormatUtils转化成想要的类型,展示到页面上就OK了,下面是示例:
spring-task.xml
<!--配置调价触发的时间-->
<bean id="autoAdjustPriceTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="autoAdjustPriceJob" />
<property name="cronExpression" value="0 20 11 * * ?"></property>
</bean>
AdjustPriceServiceImpl.java
@Autowired
@Qualifier("autoAdjustPriceTriggerBean") //对应spring-task.xml中的beanId
private org.springframework.scheduling.quartz.CronTriggerFactoryBean autoAdjustPriceTriggerBean;
@Override
public String getNextFireTime() {
Date date = autoAdjustPriceTriggerBean.getObject().getNextFireTime();
String nextFireTime = DateFormatUtils.format(date, "HH:mm:ss");
return nextFireTime;
}