1

バックグラウンド :

SpringでQuartzスケジューラを使用してcronジョブをスケジュールしています。

質問:

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を設定したいと思います。何かアイデアはありますか?

4

1 に答える 1

6

もちろん、最初にQuartzスケジューラをJavaクラス(Spring Bean)に注入する必要があります。

@Autowired
private Scheduler scheduler;

次に、QuartzAPIを使用します

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);
于 2012-11-15T19:59:49.853 に答える