java - 工作恢复时 quartz 故障

标签 java jsp persistence quartz-scheduler job-scheduling

我是 JSP 和 Quartz 调度的新手!在这个项目中,我试图让 quartz 调度程序继续运行,以防服务器关闭然后忽略错过的作业。

为此,我研究了 JobPersistence,并将 quartz.properties 文件修改如下:

org.quartz.threadPool.threadCount=5
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.useProperties = true
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.dataSource = myDB
org.quartz.dataSource.myDB.driver = com.mysql.jdbc.Driver
org.quartz.dataSource.myDB.URL = jdbc:mysql://localhost:3306/contacts
org.quartz.dataSource.myDB.user = root
org.quartz.dataSource.myDB.password = root

web.xml 文件包含以下内容:

...
<listener>
  <listener-class>
     org.quartz.ee.servlet.QuartzInitializerListener
  </listener-class>
</listener>
...

我已将表添加到数据库中,当我选择时,我可以看到它确实向其表中插入了触发器。

触发器构建如下:

Trigger trig = TriggerBuilder
.newTrigger()
.startAt(scal.getTime())
.withSchedule(
    SimpleScheduleBuilder.simpleSchedule()
    .withIntervalInMinutes(minutes).repeatForever())
    .endAt(ecal.getTime()).build();

现在,当我运行我的网络应用程序时,我会安排一个作业并执行。然后,我关闭 tomcat 服务器并重新启动它。它向记录器打印以下错误:

org.quartz.SchedulerConfigException: Failure occured during job recovery. [See nested exception: org.quartz.JobPersistenceException: Couldn't recover jobs: null [See nested exception: java.lang.NullPointerException]]

我曾尝试在 MySQLWorkbench 中执行一次以下语句:

UPDATE QRTZ_TRIGGERS SET NEXT_FIRE_TIME=1 WHERE NEXT_FIRE_TIME < 0;

现在,我得到了这个新错误:

.manage - MisfireHandler: Error handling misfires: Unexpected runtime exception: null

org.quartz.JobPersistenceException: Unexpected runtime exception: null [See nested exception: java.lang.NullPointerException]

如果您希望我编辑并包含 stackTrace,我可以做到...

最佳答案

你可能想在属性文件中使用

org.quartz.scheduler.misfirePolicy =  doNothing

因为显然错过的工作给你带来了麻烦......

我知道这是一篇旧帖子,但如果您有答案,请与我们分享!

关于java - 工作恢复时 quartz 故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31415370/

相关文章:

java - 在 netbeans 中从数据库创建实体类时如何过滤表?

java - Hibernate validator 中的国际化

java - JSTL foreach - 如何从最后一个循环到第一个

java - 实现基本 dao 时,我收到错误 Type of theparameter must be an annotated with @Entity or a collection/array of it

java - 线程中出现异常 "main"java.util.InputMismatchException 错误消息

java - 如何修剪编码的字符串?

JavaScript - 错误 404 资源未找到

java - 如何为jsp页面配置cron作业?

Javascript:如何打印 $_SESSION 数组中的值?

persistence - iphone 书签 cookie 持久性