石英中的thread.sleep必须与我的日程表的时间相匹配吗?

时间:2013-05-31 03:12:28

标签: java quartz-scheduler

这是一个愚蠢的问题,但我似乎无法在网上找到答案。

如果是早上9点,我在中午12:00安排工作,是否需要将thread.sleep设置为3小时?

换句话说,如果我将thread.sleep设置为仅仅5分钟并使用sched.shutdown(true)关注它,我的工作仍会在中午运行吗?或者调度程序已经关闭了?我不明白thread.sleep ......有人可以澄清一下吗?

EDIT添加了代码:

try {

          SchedulerFactory sf = new StdSchedulerFactory();
          Scheduler sched = sf.getScheduler();

          JobDetail job = newJob(HelloWorld.class)
                            .withIdentity("job0","group1")
                            .build();

          CronTrigger trigger = newTrigger()
              .withIdentity("trigger1", "group1")
              .withSchedule(cronSchedule("0 0 12 ? 1-12 2-6")) 
              .build();
          sched.scheduleJob(job,trigger);

          sched.start();

          Thread.sleep(300000L); //300000 milliseconds is 5 minutes
          sched.shutdown(true);

    } catch (SchedulerException ex) {
        Logger.getLogger(IBTradeGui.class.getName()).log(Level.SEVERE, null, ex);
    }

1 个答案:

答案 0 :(得分:1)

睡眠仅在示例代码中演示石英。它不是生产代码中的事情。

最好在应用程序初始化时启动调度程序,并在应用程序关闭时停止它。然后,在程序的其他部分处理计划作业。