如何设置cronExpression以编程方式使用javacode for Quartz Scheduler with Spring?(How to set cronExpression programatically using javacode for Quartz Scheduler with Spring?)

背景 :

我使用Spring的Quartz调度器来安排一个cronjob。

题:

我正在配置我的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>

我想在我的java类中以编程方式设置cronExpression。 请有任何想法吗?

BackGround :

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

Question:

I am configuring the scheduler options in my applicationconfig file. Rather, I want to specify these options programatically in my java class. Any ideas on how to achieve this? My Code is as below,

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>

I want to set the cronExpression programatically in my java class. Any ideas please?

最满意答案

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

@Autowired private Scheduler scheduler;

然后简单地使用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);

Of course, you first have to inject the Quartz scheduler to your Java class (Spring bean):

@Autowired private Scheduler scheduler;

Then simply use 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);如何设置cronExpression以编程方式使用javacode for Quartz Scheduler with Spring?(How to set cronExpression programatically using javacode for Quartz Scheduler with Spring?)

背景 :

我使用Spring的Quartz调度器来安排一个cronjob。

题:

我正在配置我的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>

我想在我的java类中以编程方式设置cronExpression。 请有任何想法吗?

BackGround :

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

Question:

I am configuring the scheduler options in my applicationconfig file. Rather, I want to specify these options programatically in my java class. Any ideas on how to achieve this? My Code is as below,

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>

I want to set the cronExpression programatically in my java class. Any ideas please?

最满意答案

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

@Autowired private Scheduler scheduler;

然后简单地使用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);

Of course, you first have to inject the Quartz scheduler to your Java class (Spring bean):

@Autowired private Scheduler scheduler;

Then simply use 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);