我正在尋找解決方案來獲取當前正在執行石英作業的線程名稱。在我的應用程序中,使用屬性配置石英,作業觸發器由數據庫驅動。查找當前正在執行Quartz Job的線程!
我在這裏實例化石英並啓動它。
StdSchedulerFactory factory = new StdSchedulerFactory(configFile);
Scheduler scheduler = factory.getScheduler();
scheduler.addGlobalJobListener(new QuartzJobListener());
scheduler.addGlobalTriggerListener(new QuartzTriggerListener());
scheduler.start();
抽到了石英job和觸發器的細節如下,
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();
}
我的問題是 - 我怎樣才能得到它正在執行當前的工作線程的名字嗎?
這是Question解決同樣的問題,但尚未得到任何解決方案的答覆截至目前。
爲什麼你需要執行你的工作線程?請詳細說明'你需要做什麼'(我認爲你沒有太在意'你將如何去做')。 – aviad 2011-05-26 08:56:42
不用於處理目的,但需要捕獲數據庫中的詳細信息以備將來參考。由於我的申請會生成大量日誌並且每次檢查每個作業的日誌都是不可能的。因此我創建了監聽器,它將捕獲執行中的數據。我能夠得到所有的細節,如工作/觸發組,名稱,火警時間,下一次火災時間等,但不包括線程相關信息。 – RajeshS 2011-05-26 09:03:58