2014-03-19 110 views
0

我无法找到实际原因,但我的石英表正在更新NEXT_FIRE_TIMEPREV_FIRE_TIME,但作业未运行。石英作业未运行,但石英表正在更新

quartz.properties

org.quartz.scheduler.instanceName="MyScheduler" 
org.quartz.threadPool.class="org.quartz.simpl.SimpleThreadPool" 
org.quartz.threadPool.threadCount="4" 
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread="true" 
org.quartz.scheduler.threadsInheritContextClassLoaderOfInitializer="true" 
org.quartz.jobStore.class="org.quartz.impl.jdbcjobstore.JobStoreTX" 
org.quartz.jobStore.driverDelegateClass="org.quartz.impl.jdbcjobstore.StdJDBCDelegate" 
org.quartz.jobStore.dataSource="tasksDataStore" 
org.quartz.jobStore.tablePrefix="QRTZ_" 
org.quartz.jobStore.misfireThreshold="60000" 
org.quartz.jobStore.isClustered="false" 
org.quartz.dataSource.tasksDataStore.driver="oracle.jdbc.driver.OracleDriver" 
org.quartz.dataSource.tasksDataStore.URL="jdbc:oracle:thin:@localhost:1521/orcl" 
org.quartz.dataSource.tasksDataStore.user="scott" 
org.quartz.dataSource.tasksDataStore.password="tiger" 
org.quartz.dataSource.tasksDataStore.maxConnections="20" 

代码调度书面

  JobDetail job = null; 
     CronTrigger trigger = null; 
     Logger log = LoggerFactory.getLogger(CronTrigger.class); 

     System.out.println("------- Initializing -------------------"); 

     // First we must get a reference to a scheduler 
     SchedulerFactory sf = new StdSchedulerFactory("/conf/quartz.properties"); 
     Scheduler sched = sf.getScheduler(); 


     try { 
      System.out.println("------- Scheduling Jobs ----------------"); 
      job = newJob(SchedulerJob.class).withIdentity("job2", "group2").build(); 

      trigger = TriggerBuilder 
        .newTrigger() 
        .withIdentity("dummyTriggerName", "group1") 
        .withSchedule(
          CronScheduleBuilder.cronSchedule("0 0/5 * * * ?")) 
        .build(); 

      Date ft = sched.scheduleJob(job, trigger); 
      // System.out.println(sched.getSchedulerName()); 
     } catch (Exception e) { 
      System.out.println("------- Job Already Exist ----------------"); 
     } 
     sched.start(); 

回答

0

确保您开始使用调度scheduler.start();

否则石英将坚持工作数据,但不会响应触发的触发器,并且不会实际运行任何东西(待机模式)。

+0

我正在使用'scheduler.start()'。但是,当我检查正在运行的作业时,我将调度程序状态设置为'STANDBY' – Ravi

+0

您可以发布调度程序init代码和quartz.properties吗? –

+0

更新后的'quartz.properties'文件 – Ravi

0

对不起,不回答评论,信誉问题。你能解决你的问题吗?这个问题可能源于多种因素:执行

  • 触发可以通过触发听者
  • 的作业可以被采空,并报告其执行
  • 被否决

    • 作业可能失败检查的一种简单方法是使用触发器侦听器和作业侦听器,并在Quartz中记录或调试触发。

    +0

    我正在使用scheduler.start()。但是,当我检查正在运行的作业时,我将调度程序状态设置为“STANDBY” – Ravi