我正在将Spring从Spring 2.x升级到Spring 4.2.4,将Quartz从1.8升级到2.3
下面的bean抛出“无效的bean类org.springframework.scheduling.quartz.SchedulerFactoryBean”的属性‘持久性’“
如果我删除耐久性属性,我会得到"org.quartz.SchedulerException:没有触发器添加的作业必须是持久的“
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="durability" value="true"/>
<property name="recover" value="false"/>
<property name="jobDetails">
<list>
<ref bean="deleteTempFileJobScheduler" />
</list>
</property>
<property name="triggers">
<list>
<ref bean="deleteTempFileJobSchedulerTrigger" />
</list>
</property>
</bean>有什么建议吗?提前谢谢。
发布于 2016-04-28 13:24:42
Quartz-Job有一个称为持久性的属性。
此属性确定是否应自动删除没有触发器的作业。
即,如果您设置
<property name="durability" value="true"/>那么作业就会留在JobStore中,即使没有触发器再指向它。
但是如果你设置了
<property name="durability" value="false"/>如果没有触发器指向作业,则应从JobStore中删除作业。在这种情况下,如果您尝试向JobStore添加一个没有触发器的作业(因为您添加了一个将立即删除的作业),Quartz会给您提供上述异常。
要防止此类异常,您可以将作业与触发器一起添加到JobStore。
发布于 2016-10-12 15:11:59
您需要将durability属性设置为JobDetailFactoryBean (在本例中为deleteTempFileJobScheduler),而不是SchedulerFactoryBeam
发布于 2017-08-18 18:30:56
当我们创建作业本身时,您可以添加storeDurably(true)。这是我的工作。
JobDetail job = newJob(JobScheduler.class)
.withIdentity( sc.getId()+ "_Job")
.usingJobData(getJobDataMap(sc))
.storeDurably(true)
.build();https://stackoverflow.com/questions/36893608
复制相似问题