【问题标题】:Skipping quartz scheduler for a particular time in a particular day在特定日期的特定时间跳过石英调度程序
【发布时间】:2015-06-28 13:20:45
【问题描述】:

如果想在特定日期的特定时间跳过调度程序。 例如我有以下列表:

 15-June-2015 Time: 4:00 AM to 5:00 AM
 17-June-2015 Time: 12:00 PM to 1:00 PM
 17-July-2015 Time: 11:00 PM to 12:00 AM
 19-August-2015 Time: 12:00 PM to 1:00 PM
 21-November-2015 Time: 7:00 AM to 10:00 PM

我应该使用哪种石英日历?有没有办法实现这种实现?我知道有不同类型的日历可用,如年度、假期、cron、每周、每月。 但看起来他们都不能实现上面的例子。

【问题讨论】:

  • 以上时间的逻辑是什么?
  • 假设有一家公司已经指定了软件发布日期和时间。他们不想在发布期间运行软件构建(跳过构建)。所以这个时间间隔需要被跳过。现在,由于没有关于他们如何定义发布时间的具体逻辑,我们不能假设任何特定逻辑。

标签: java quartz-scheduler job-scheduling


【解决方案1】:

不确定,Quartz Schedular 中是否有任何选项。但是,您可以在 Java 中完成。创建一个包含日期和时间的表。并且,在你的课堂上,检查具体的日期和时间。如果匹配则跳过任务。请参阅下面的代码。

public class SchedularJob implements Job {

    public void execute(JobExecutionContext context)
            throws JobExecutionException {
        if (checkDateTime()) {
            System.out.println("Skip the job");
        }else{
           System.out.println(" : Job Executed..!!"); // execute your Job.
        }                     

    }

}

如有任何疑问,请告诉我。

【讨论】:

  • 这是我一直在寻找的完美答案。我一直在思考应该如何使用 quart API (modifiedByCalendar)。但是从没想过我可以自己创建一个API并跳过调度程序。谢谢 jWeaver。
猜你喜欢
  • 2018-12-26
  • 2017-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-24
  • 2013-10-21
  • 1970-01-01
  • 2016-05-27
相关资源
最近更新 更多