背景 :
我使用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);更多推荐
发布评论