QuartzJobBean实现定时器功能

来源:互联网 发布:java中方法的概念 编辑:程序博客网 时间:2024/06/07 02:58

第一步:自定义一个接口

public interface QuartzJobIf{    public abstract void perform();}

第二步:自定义一个类继承 QuartzJobBean,实现QuartzJobIf接口

public class RedoGenerateAZCapacityHistory extends QuartzJobBean implements        QuartzJobIf{    private Logger LOGGER = LoggerFactory.getLogger(getClass());    private CapacityService capacityService;//自定义的一个service    @Override    public void perform()    {        if (capacityService != null)        {            try            {            capacityService.generateAZCapacityHistory();            }            catch (NfvoException e)            {                e.printStackTrace();                LOGGER.info("execute generateAZCapacityHistory failure...");            }            catch (Exception e) {            e.printStackTrace();                LOGGER.info("execute generateAZCapacityHistory failure...");}        }        else        {            LOGGER.info("capacityService in null,could not execute generateAZCapacityHistory...");        }    }    @Override    protected void executeInternal(JobExecutionContext arg0)            throws JobExecutionException    {        perform();    }public CapacityService getCapacityService() {return capacityService;}public void setCapacityService(CapacityService capacityService) {this.capacityService = capacityService;}}
第三步:配置xml文件

<!-- 配置GenerateAZCapacityHistory定时任务 -->
<span style="white-space:pre"></span><bean id="capacityService" class="com.ericsson.ecmca.services.wf.impl.CapacityServiceImpl">
<span style="white-space:pre"></span></bean>//自定义service
<bean id="generateAZCapacityHistoryCronJobDetail"class="org.springframework.scheduling.quartz.JobDetailFactoryBean"><property name="jobClass"value="com.ericsson.ecmca.cronjob.RedoGenerateAZCapacityHistory" /><property name="durability" value="true" /><property name="jobDataAsMap"><map><entry key="capacityService"><ref local="capacityService" /></entry></map></property></bean><bean id="generateAZCapacityHistoryCronJobTrigger"class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"><property name="jobDetail" ref="generateAZCapacityHistoryCronJobDetail" /><property name="cronExpression" value="${generateAZCapacityHistory.exp}" /></bean><!----><bean id="AZCapacityTrigger"class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="triggers"><list><ref bean="generateAZCapacityHistoryCronJobTrigger" /></list></property></bean>

第四步:配置定时时间

generateAZCapacityHistory.exp=0 0 * * * ?

0 0