我们要求在应用程序维护之前暂停作业。我们在集群中使用Quartz 2.2.1。数据库是oracle。
我开发了一个具有“暂停”功能的屏幕。我发现“暂停”工作正常,直到我再次启动服务器。当我启动服务器时,QRTZ_TRIGGERS表的TRIGGER_STATE重置为“WAITING”。
任何人都可以提供一个提示。
提前多多感谢。
Rgds - Roy
答案 0 :(得分:0)
如果您设置了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>