计时quartz任务执行时长

发布于 2024-08-10 11:47:11 字数 68 浏览 6 评论 0原文

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

Is there a standard way of logging the time Quartz takes to execute a task? I'm open to Spring based solutions as well, as I'm using both.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

黑色毁心梦 2024-08-17 11:47:11

您可以使用通用计时库,例如 ERMA。它与弹簧结合得非常好。

You can use a general purpose timing library, such as ERMA. It integrates very nicely with spring.

爱殇璃 2024-08-17 11:47:11

您可以实现 JobListener 并将其添加为 全局作业监听器到调度程序。

这将为您提供一些有关作业何时即将执行以及何时完成执行的信息。您应该能够使用这些挂钩执行某些操作来记录作业的开始和结束时间,然后记录运行时间。

You could implement a JobListener and add it as a global job listener to the scheduler.

This will give you some hooks on when a job is about to be executed and when it has finished executing. You should be able to do something with these hooks to record the start and end times of the jobs, and then log the run time.

朮生 2024-08-17 11:47:11

您可以使用 JobListener 来实现此目的。作业的执行时间甚至由上下文提供。监听器需要添加到使用的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();

You can use a JobListener for that. The execution time of a job is even provided by the context. The Listener need to be added to the 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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文