Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java thread.sleep in quartz是否必须与我的时间表相匹配?_Java_Quartz Scheduler - Fatal编程技术网

Java thread.sleep in quartz是否必须与我的时间表相匹配?

Java thread.sleep in quartz是否必须与我的时间表相匹配?,java,quartz-scheduler,Java,Quartz Scheduler,这是一个愚蠢的问题,但我似乎无法在网上找到答案 如果是上午9:00,我将作业安排在下午12:00,我是否需要将线程睡眠时间设置为3小时 换句话说,如果我将线程.sleep设置为仅5分钟,然后执行sched.shutdown(true)作业是否仍在中午运行?或者调度程序是否已经关闭?我不明白线程的意思。睡眠…有人能澄清一下吗 编辑添加的代码: try { SchedulerFactory sf = new StdSchedulerFactory(); Sc

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

如果是上午9:00,我将作业安排在下午12:00,我是否需要将
线程睡眠时间设置为3小时

换句话说,如果我将
线程.sleep
设置为仅5分钟,然后执行
sched.shutdown(true)
作业是否仍在中午运行?或者调度程序是否已经关闭?我不明白线程的意思。睡眠
…有人能澄清一下吗

编辑添加的代码:

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);
    }

睡眠仅在示例代码中用于演示quartz。这不是在生产代码中要做的事情


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

您的意思是说您正在使用main方法或类似方法睡眠,以便应用程序不会终止?如果您的程序停止,那么作业将不会运行。@darrenmc根据文档,您应该在启动线程后休眠线程,以便作业有时间执行。我不明白这是否意味着在调度作业之前睡眠线程,或者只是睡眠几分钟,以便在关机之前在调度程序中注册。我添加了代码,向您显示我的
线程.sleep
的显示位置。我使用的是
Swing
,我的try/catch块位于按下按钮时发生的方法中。我的
thread.sleep
仅在按钮方法中,如果有帮助的话…我认为睡眠仅在示例代码中演示quartz。这不是我在生产代码中所做的事情。我认为最好在应用程序初始化时启动调度器,在应用程序关闭时停止它。安排作业然后在程序的其他部分处理。@darrenmc啊,这是一个更聪明的主意……谢谢。如果你加上这个作为回答,我会接受的。谢谢