Non sembrano esserci molte informazioni complete su questo. Ecco come pianifico i lavori in modo dinamico. Ovviamente potresti sostituire il semplice trigger con qualche altro trigger.
bean Spring:
<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>
Per eseguire immediatamente il processo ottenere un riferimento alla pianificazione e il lavoro, collegare un semplice grilletto e metterlo in scheduler, in questo modo:
@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);
}
fonte
2012-04-27 14:30:45
aver capito la domanda allo stesso modo. Mi stavo anche chiedendo la relazione tra i lavori e i lavori definiti staticamente che vengono creati in seguito. –
+1 per "dinamicamente" - è la ricerca che mi ha portato qui. –