【问题标题】:Findout how long a job has been running in Quartz找出一个作业在 Quartz 中运行了多长时间
【发布时间】:2011-06-25 07:46:59
【问题描述】:

我正在 Quartz 中编写一种开始 - 暂停 - 恢复 - 暂停 - 恢复 -(定期)类型的工作。我正在使用 SimpleTrigger 进行初始实验。

我想知道如何找到作业的运行时间。我查看了Scheduler类,没有直接找到的方法。

有人可以给我建议一种方法来找出工作已经运行了多长时间吗?

谢谢, 阿比

【问题讨论】:

    标签: scheduled-tasks quartz-scheduler pausing-execution


    【解决方案1】:

    调用 scheduler.getCurrentlyExecutingJobs() 以获取当前正在执行的作业集(或更准确地说是获取每个作业的 JobExecutionContext)。

    然后你可以在 JobExecutionContext 上调用 getFireTime() 来查看执行开始的时间。

    【讨论】:

    • 假设一个作业是否每隔 10 分钟执行一次,并且它在 09:00 开始。当我在 09:35 左右获取 getFireTime() 时,它会返回什么? 09:00 还是 09:30?
    • 9:30。如果是 SimpleTrigger,它的 startTime 将是 9:00 - 但该技巧不一定适用于其他触发器类型。
    • 澄清一下,它不一定适用于其他触发器类型,因为 SimpleTrigger 在 startTime 上第一次触发,但其他触发器类型不一定如此,例如 A CronTrigger可以在每天 9:00 期间每 10 分钟触发一次,例如“0 0/10 9 * * ?”但它的开始时间几乎可以设置为希望它开始触发之前或之时的任何时间 - 除非您故意让您的应用始终将 CronTrigger 的 startTime 设置为第一次触发时间。
    猜你喜欢
    • 2022-08-10
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多