石英作业没有运行,但石英表得到更新

时间:2014-03-19 13:59:34

标签: java oracle11g quartz-scheduler netbeans-7

我无法找到实际原因,但我的石英表正在针对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();

2 个答案:

答案 0 :(得分:0)

确保使用scheduler.start();

启动调度程序

否则,石英将保留作业数据但不会响应已触发的触发器,并且实际上无法运行任何东西(待机模式)。

答案 1 :(得分:0)

很抱歉不回答评论,声誉问题。你能解决问题吗?这个问题可能来自很多因素:

  • 执行
  • 时作业失败
  • 触发器可以被触发器侦听器否决
  • 可以停止作业并报告其执行情况

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