How to set cronExpression programatically using javacode for Quartz Scheduler with Spring?

Gen*_*ful 1 spring quartz-scheduler

BackGround :

I am using Quartz scheduler with Spring to schedule a cronjob.

Question:

我正在我的applicationconfig文件中配置调度程序选项.相反,我想在我的java类中以编程方式指定这些选项.关于如何实现这一点的任何想法?我的代码如下,

ApplicationConfig



<!-- Cron Trigger -->
<bean id="SimpleTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
  <property name="jobDetail" ref="TaskJobDetail" />
  <property name="cronExpression" value="0 19 14 * * ?" />  
</bean>

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
 <property name="jobDetails">
    <list>
    <ref bean="TaskJobDetail" />
    </list>
</property>  
<property name="triggers">
    <list>
    <ref bean="SimpleTrigger" />
    </list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)

我想在我的java类中以编程方式设置cronExpression.有什么想法吗?

Tom*_*icz 6

当然,首先必须将Quartz调度程序注入Java类(Spring bean):

@Autowired
private Scheduler scheduler;
Run Code Online (Sandbox Code Playgroud)

然后只需使用Quartz API:

import static org.quartz.TriggerBuilder.*;
import static org.quartz.CronScheduleBuilder.*;
import static org.quartz.DateBuilder.*:

JobDetail job = newJob(SimpleJob.class).build();

CronTrigger trigger = newTrigger()
    .withSchedule(cronSchedule("0 19 14 * * ?"))
    .build();

schedulder.scheduleJob(job, trigger);
Run Code Online (Sandbox Code Playgroud)