Il ne semble pas y avoir beaucoup d'informations complètes à ce sujet. C'est ainsi que je planifie les tâches dynamiquement. Bien sûr, vous pouvez remplacer le déclencheur simple par un autre déclencheur.
grains de printemps:
<bean name="dailyUpdateJob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
<property name="jobClass" value="com.somecompany.scheduler.DailyUpdates" />
</bean>
<bean id="dailyCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="dailyUpdateJob" />
<!-- run every morning at 4:15 AM -->
<property name="cronExpression" value="00 15 04 * * ?" />
</bean>
<bean name="quartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="dailyCronTrigger" />
<ref bean="weeklyReportsCronTrigger" />
</list>
</property>
<property name="applicationContextSchedulerContextKey">
<value>applicationContext</value>
</property>
</bean>
Pour exécuter le travail immédiatement obtenir une référence au planificateur et le travail, veuillez joindre un déclencheur simple et le mettre dans le programmateur, comme ceci:
@Autowired
SchedulerFactoryBean scheduler;
@Autowired
@Qualifier("dailyUpdateJob")
JobDetailFactoryBean dailyJob;
public void dynamicJobTrigger() throws Exception {
// Create a trigger for "now"
SimpleTrigger trigger = (SimpleTrigger) newTrigger()
.startAt(new Date())
.forJob(dailyJob.getObject())
.build();
// And drop it into the scheduler for immediate execution
scheduler.getScheduler().scheduleJob(trigger);
}
Je comprends la question de la même manière. Je m'interrogeais aussi sur la relation entre les emplois statiquement définis et les emplois créés plus tard. –
+1 pour "dynamiquement" - c'est la recherche qui m'a amené ici. –