Search code examples
javaquartz-schedulercrontrigger

Set Cron trigger for once


How can I set Quartz cron trigger for run at one specifc date and time for once?

Eg: run something at 12.30pm on 2017-06-30 and never run again


Solution

  • If you want to achieve using CronTrigger try like below

    <bean id="newTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
            <property name="jobDetail" ref="oneTimeJob"/>
            <property name="cronExpression" value="0 30 12 30 6 ? 2017"/>
    
        </bean>
    

    Or As @scary wombat mention Use SimpleTrigger

    SimpleTrigger trigger = (SimpleTrigger) newTrigger() 
        .withIdentity("trigger1", "group1")
        .startAt(myStartTime) // some Date date 30.06.2017 12:30
        .forJob("job1", "group1") // identify job with name, group strings
        .build();