作业未使用triggers_jobs.xml配置文件运行

时间:2012-01-22 09:54:03

标签: java quartz-scheduler

我的工作没有开始。

我使用2.1.1版本的石英,我的servlet是tomcat。 当在triggers_jobs.xml中写入设置时,我必须运行作业。 该文件如下所示:

<?xml version='1.0' encoding='utf-8'?>
<quartz>
  <job>
    <job-detail>
      <name>my_job1</name>
      <group>my_group</group>
      <job-class>com.crossreader.webapi.scheduler.ScheduledTasksJob</job-class>
    </job-detail>

      <trigger>
          <cron>
              <name>dailyTrigger</name>
              <group>my_group</group>
              <job-name>my_job1</job-name>
              <job-group>my_group</job-group>
              <!-- trigger that fires every 5 minutes -->
              <cron-expression>0 0/5 * * * _</cron-expression>
          </cron>
      </trigger>
  </job>
</quartz>

我创建了一个如下所示的servlet:

public class SchedulerServlet extends GenericServlet {

  static private final CRLogger LOG = CRLogger.createCRLogger();

  public void init(ServletConfig servletConfig) throws ServletException {
    super.init(servletConfig);

try{
      LOG.info("........ Start SchedulerManager ..............");
      // Grab the Scheduler instance from the Factory
      SchedulerFactory schedulerFactory = new StdSchedulerFactory();
      final Scheduler scheduler = schedulerFactory.getScheduler();

      // start the scheduler
      scheduler.start();

    } catch(SchedulerException e) {
      e.printStackTrace();
    }
  }
}

我创建了一个继承自Job的ScheduledTasksJob类,它看起来像这样:

public class ScheduledTasksJob implements Job{
  public ScheduledTasksJob() {
    LOG.info("........ ScheduledTasksJob Starts - constructor ..............");
  }

  public void execute(JobExecutionContext context) throws JobExecutionException {

    try{
      MyServletClass.runAllJobs();
    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}

这是我的quartz.properties文件:

# This scheduler's name will be "MyQuartzScheduler"
org.quartz.scheduler.instanceName: MyQuartzScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export: false
org.quartz.scheduler.rmi.proxy: false

org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool
# There are 3 threads in the thread pool, which means that a maximum of 3 jobs can be run simultaneously.
org.quartz.threadPool.threadCount: 3

# All of Quartz's data, such as details of jobs and triggers, is held in memory (rather than in a database).
org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore

org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = jobs/triggers_jobs.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
org.quartz.plugin.jobInitializer.failOnFileNotFound = true

这是我在LOG文件中得到的:

INFO: QuartzInitializer: Quartz Initializer Servlet loaded, initializing Scheduler...
[11:38:10] [hread-1] [INFO] [StdSchedulerFactory] > Using default implementation for ThreadExecutor
[11:38:10] [hread-1] [INFO] [SimpleThreadPool] > Job execution threads will use class loader of thread: pool-2-thread-1
[11:38:10] [hread-1] [INFO] [SchedulerSignalerImpl] > Initialized Scheduler Signaller of type: class org.quartz.core.SchedulerSignalerImpl
[11:38:10] [hread-1] [INFO] [QuartzScheduler] > Quartz Scheduler v.2.1.1 created.
[11:38:10] [hread-1] [INFO] [RAMJobStore] > RAMJobStore initialized.
[11:38:10] [hread-1] [INFO] [QuartzScheduler] > Scheduler meta-data: Quartz Scheduler (v2.1.1) 'DefaultQuartzScheduler' with instanceId 'NON_CLUSTERED'
  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
  NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0
  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support persistence. and is not clustered.

[11:38:10] [hread-1] [INFO] [StdSchedulerFactory] > Quartz scheduler 'DefaultQuartzScheduler' initialized from default resource file in Quartz package: 'quartz.properties'
[11:38:10] [hread-1] [INFO] [StdSchedulerFactory] > Quartz scheduler version: 2.1.1
[11:38:10] [hread-1] [INFO] [QuartzScheduler] > Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
[11:38:10] [rThread] [DEBUG] [QuartzSchedulerThread] > batch acquisition of 0 triggers
??? 22, 2012 11:38:10 AM org.apache.catalina.core.ApplicationContext log
INFO: QuartzInitializer: Scheduler has been started...
??? 22, 2012 11:38:10 AM org.apache.catalina.core.ApplicationContext log
INFO: QuartzInitializer: Storing the Quartz Scheduler Factory in the servlet context at key: org.quartz.impl.StdSchedulerFactory.KEY
[11:38:10] [hread-1] [INFO] [SchedulerManager] > ........ Start SchedulerManager ..............
[11:38:10] [hread-1] [INFO] [QuartzScheduler] > Scheduler DefaultQuartzScheduler_$_NON_CLUSTERED started.
[11:38:10] [rThread] [DEBUG] [QuartzSchedulerThread] > batch acquisition of 0 triggers
??? 22, 2012 11:38:10 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
??? 22, 2012 11:38:10 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
??? 22, 2012 11:38:10 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 25379 ms
Connected to server
[11:38:11] [Timer-0] [DEBUG] [UpdateChecker] > Checking for available updated version of Quartz...
[11:38:12] [Timer-0] [INFO] [UpdateChecker] > New Quartz update(s) found: 2.1.2 [http://www.terracotta.org/kit/reflector?kitID=default&pageID=QuartzChangeLog]
[11:38:34] [rThread] [DEBUG] [QuartzSchedulerThread] > batch acquisition of 0 triggers
.
.
.
[11:44:46] [rThread] [DEBUG] [QuartzSchedulerThread] > batch acquisition of 0 triggers

为什么类ScheduledTasksJob没有运行?

感谢您的帮助。

0 个答案:

没有答案
相关问题