是否有记录 Quartz 执行任务所需时间的标准方法?我也对基于 Spring 的解决方案持开放态度,因为我同时使用了这两种解决方案。
问问题
1818 次
3 回答
3
您可以使用通用时序库,例如ERMA。它与弹簧很好地结合在一起。
于 2009-11-11T11:49:59.427 回答
2
您可以实现JobListener并将其作为全局作业侦听器添加到调度程序。
这将为您提供一些关于何时将执行作业以及何时完成执行的钩子。您应该能够使用这些挂钩来记录作业的开始和结束时间,然后记录运行时间。
于 2009-11-11T12:36:12.437 回答
0
你可以使用 a JobListener
。作业的执行时间甚至由上下文提供。Listener 需要添加到 used 中Scheduler
:
public class GlobalJobRuntimeListener implements JobListener {
//... other methods to overwrite
@Override
public void jobWasExecuted(JobExecutionContext context, JobExecutionException jobException) {
System.out.println("Job with key " + context.getJobDetail().getKey().toString()
+ " finished in " + context.getJobRunTime() + " ms.");
}
}
-
Scheduler scheduler = schedulerFactory.getScheduler();
scheduler.getListenerManager().addJobListener(new GlobalJobRuntimeListener());
scheduler.start();
于 2018-05-15T12:13:20.353 回答