Quartz current executing job when Tomcat is killed
Short answer, by default, currently running Jobs are considered fired and are not recovered
..but you can set requestRecovery property when you build a Job (JobDetail) to tell Quartz to recover that running Jobs in case of crash a.k.a. "hard shutdown".
Quoting the official documentation here on the bottom of the page:
RequestsRecovery - if a job "requests recovery", and it is executing during the time of a 'hard shutdown' of the scheduler (i.e. the process it is running within crashes, or the machine is shut off), then it is re-executed when the scheduler is started again. In this case, the JobExecutionContext.isRecovering() method will return true.
So you can do for example:
import static org.quartz.JobBuilder.*;
...
JobDetail job = newJob(MyJob.class)
.withIdentity("myJob", "group1")
.requestRecovery(true) //This is the guy!
.build();
...