我们有一个基于SQL的石英调度程序。有一个作业处理100k记录并运行2个小时。如果在作业仍在运行的情况下启动服务器关闭,则在重新启动服务器后是否会再次启动作业?
答案 0 :(得分:3)
检查
RequestsRecovery - 如果一个作业“请求恢复”,并且它正在调度程序的“硬关闭”期间执行(即它在崩溃中运行的进程,或者机器被关闭) ,然后在再次启动调度程序时重新执行它。在这种情况下,JobExecutionContext.isRecovering()方法将返回true。
只要您拥有JDBCData存储,就可以使用。
答案 1 :(得分:1)
在使用JDBC配置属性创建Scheduler factory时,需要存储调度程序详细信息JDBC JobStore。
之后,您可以从元数据中提取它,并根据失败时间检索您的调度程序详细信息并根据您的要求恢复。
请参阅: - Quartz Scheduler using JDBC JobStore
另一种替代方法是您可以创建自己的Scheduler Listener并将其分配给调度程序。参考: - https://examples.javacodegeeks.com/enterprise-java/quartz/quartz-scheduler-tutorial/