我正在寻找解决方案来获取当前正在执行石英作业的线程名称。在我的应用程序中,使用属性配置石英,作业触发器由数据库驱动。查找当前正在执行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