Nedari se mi rozchodit Quartz persistenci. Stravil jsem nad tim skoro celej den a bez vysledku. Tato konfigurace nejspis v dobe psani knihy Pro Spring fungovala, ale ted uz bohuzel nefunguje, pise mi to:
[QuartzScheduler_QuartzScheduler-NON_CLUSTERED_MisfireHandler] INFO org.springframework.scheduling.quartz.LocalDataSourceJobStore - Handling 1 trigger(s) that missed their scheduled fire-time.
konfigurace:
<bean id="job" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass">
<value>service.GameChecker</value>
</property>
</bean>
<bean id="trigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail">
<ref local="job"/>
</property>
<property name="startDelay">
<value>1000</value>
</property>
<property name="repeatInterval">
<value>3000</value>
</property>
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="applicationContextSchedulerContextKey">
<value>applicationContext</value>
</property>
<property name="triggers">
<list>
<ref local="trigger"/>
</list>
</property>
</bean>
package service;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
import org.springframework.context.ApplicationContext;
import service.GameManager;
public class GameChecker extends QuartzJobBean{
private ApplicationContext ctx;
public void setApplicationContext(ApplicationContext applicationContext) {
this.ctx = applicationContext;
}
protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
GameManager gm = (GameManager) ctx.getBean("gameManager");
gm.checkNextItemPerson();
}
}
nepodarilo se mi vygooglit jak to zrobit, aby to fungovalo..