I am looking for solution to get the the thread name currently executing the quartz job. In my application, quartz is configured using properties and jobs triggers are DB driven.
Here i am instantiating the quartz and starting it.
StdSchedulerFactory factory = new StdSchedulerFactory(configFile);
Scheduler scheduler = factory.getScheduler();
scheduler.addGlobalJobListener(new QuartzJobListener());
scheduler.addGlobalTriggerListener(new QuartzTriggerListener());
scheduler.start();
Able to get the quartz JOB and TRIGGER details as follows,
try{
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
List<JobExecutionContext> jobList = scheduler.getCurrentlyExecutingJobs();
for(JobExecutionContext jobExecutionContext : jobList){
// JOB Details
JobDetail jobDetail = jobExecutionContext.getJobDetail();
String strJobName = jobDetail.getName();
String strDescription = jobDetail.getDescription();
// Trigger Details
Trigger trigger = jobExecutionContext.getTrigger();
String strTriggerName = trigger.getName();
String strFireInstanceId = trigger.getFireInstanceId();
int state = scheduler.getTriggerState(trigger.getName(),trigger.getGroup());
}
}catch(Exception e){
e.printStackTrace();
}
My question is – How can i get the thread name which is executing the current job?
Here is Question addressing the same issue but havent got any solution reply as of now.
You could add a
variable to your Job class and in the
execute()method, set