石英调度器未从计划中删除已删除的作业

3
我正在开发定时服务。
该应用程序使用JDK 1.6、Spring Framework 2.5.6和Quartz 1.8.4来调度任务。
我有两个集群服务器,使用WebLogic Server 10.3.5。
我注意到的行为是,如果从应用程序中删除(或重命名)作业,则Quartz仍然尝试启动旧作业(似乎在Quartz用于同步其实例的数据库中注册了旧作业)。
有人可以解释一下这种行为的原因吗?
我的需求是,在我在应用程序中删除作业并重新启动WebLogic实例时,Quartz不会尝试引导旧作业。
提前感谢。

你正在从Quartz表中删除作业吗? - Sudhanshu Umalkar
我仅仅从应用程序代码中删除了该作业,并重新构建了软件的分发。 - Claudio Query
1个回答

2

您需要明确地从quartz调度程序中删除作业,您是否已经这样做了? 例如,如果您有这个调度程序:

private org.quartz.Scheduler myScheduler = null;

你需要调用:

myScheduler.deleteJob(...

当作业被删除或更名时。
如果您这样做了,也许您正在传递不正确的键?
或者,当您构建quartz作业时,您可以使用:jobBuilder.storeDurably(false)。这将导致您的quartz作业在不再有活动触发器与其关联时自动删除。

使用deletejob函数可以正确地删除作业。我目前正在进行定期作业的重构活动,是否有一种方法或quartz配置可以在作业不再存在时自动删除它们? - Claudio Query
2
谢谢您的建议。我正在使用Spring Framework(org.springframework.scheduling.quartz)来启动quartz,而“durably”的默认值为false。看起来这个设置没有任何效果。 - Claudio Query

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接