2

是否有记录 Quartz 执行任务所需时间的标准方法?我也对基于 Spring 的解决方案持开放态度,因为我同时使用了这两种解决方案。

4

3 回答 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 回答