BackGround:
我在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。有什么想法吗?
答案 0 :(得分:6)
当然,首先必须将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);