【问题标题】:How do I cancel a job trigger if the previous trigger is still running?如果前一个触发器仍在运行,如何取消作业触发器?
【发布时间】:2013-10-24 15:35:59
【问题描述】:

我是 Quartz 调度程序的新手。我有一个批处理文件,运行需要 3 分钟。我需要使用 Quartz 调度程序每 2 分钟运行一次该批处理。所以我把它安排在每天 3 小时。 我的问题是我需要检查第一个触发器的状态,如果它不是完整的状态,我需要退出这项工作。我需要继续我安排的下一个工作。 解释: 作业 53 触发器从上午 11.30 开始 下一个触发器从上午 11.32 开始 下一个触发器从上午 11.34 开始 我需要检查上午 11.30 的触发器状态,如果没有完成,我需要关闭此作业并转到我安排的下一个作业。如何在 Quartz 调度器中实现这一点

【问题讨论】:

    标签: quartz-scheduler


    【解决方案1】:

    您可以从Scheduler 获取当前正在执行的作业,并检查您的作业是否已完成:

    Scheduler scheduler = new StdSchedulerFactory().getScheduler();
    List jobsList = scheduler.getCurrentlyExecutingJobs();
    

    【讨论】:

      【解决方案2】:

      如果您有触发器实例,从上午 11.30 开始,那么只需检查“trigger.STATE_BLOCKED” 等于 1 或否。如果为 1,则作业处于运行状态。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多