简短回答,默认情况下,当前正在运行的作业被视为已触发并且无法恢复
.. 但 您可以在构建Job(JobDetail)时设置 属性,以告诉Quartz在发生崩溃(也称为“硬关机”)的情况下恢复正在运行的Jobs。
如果作业“请求恢复”,并且在调度程序的“硬关闭”期间正在执行(即,正在崩溃中运行的进程,或者计算机已关闭),则将重新执行该作业再次启动调度程序时。在这种情况下,JobExecutionContext.isRecovering()方法将返回true。
因此,您可以例如:
import static org.quartz.JobBuilder.*;
...
JobDetail job = newJob(MyJob.class)
.withIdentity("myJob", "group1")
.requestRecovery(true) //This is the guy!
.build();
...