0
我们有要求在应用程序维护之前暂停作业。我们在集群中使用Quartz 2.2.1。数据库是oracle。石英触发器状态在服务器启动时不存在
我开发了一个具有“暂停”功能的屏幕。我观察到“暂停”工作正常,直到我再次启动服务器。在我启动服务器的那一刻,QRTZ_TRIGGERS表的TRIGGER_STATE重置为“WAITING”。
任何人都可以提供一个提示。
非常感谢。
RGDS - 罗伊
我们有要求在应用程序维护之前暂停作业。我们在集群中使用Quartz 2.2.1。数据库是oracle。石英触发器状态在服务器启动时不存在
我开发了一个具有“暂停”功能的屏幕。我观察到“暂停”工作正常,直到我再次启动服务器。在我启动服务器的那一刻,QRTZ_TRIGGERS表的TRIGGER_STATE重置为“WAITING”。
任何人都可以提供一个提示。
非常感谢。
RGDS - 罗伊
如果已设置overwriteExistingJobs = TRUE(请注意,默认值为false),那么每个服务器启动时,它加载从配置文件/触发工作,并取代现有的(即有相同的作业/触发器名称),因此覆盖触发器及其状态也与您的情况一样。
您可以尝试在SchedulerFactoryBean中设置overwriteExistingJobs = false。但是,这对您来说可能不方便,因为如果您曾在服务器中更改作业配置,则具有旧配置的现有作业将保留在数据库中。
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
....
<property name="overwriteExistingJobs" value="false"/>
<property name="triggers">
<list>
....
</list>
</property>
....
</bean>