我的石英调度程序在本地服务器上工作但不在控制服务器中工作

时间:2015-02-06 05:56:50

标签: java quartz-scheduler

调度程序在本地服务器上工作,但是当我在生产服务器中部署它时,它无法正常工作。

我已经从web.xml中的侦听器启动了我的调度程序

我的web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <display-name>AdroitUrban</display-name>
    <servlet>
        <servlet-name>ServletAdaptor</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>ServletAdaptor</servlet-name>
        <url-pattern>/res/*</url-pattern>
    </servlet-mapping>
 <listener>
    <listener-class>com.Adroit.java.QuartzServletContextListener</listener-class>
</listener>
<context-param>
    <param-name>quartz:shutdown-on-unload</param-name>
    <param-value>true</param-value>
</context-param>
<context-param>
    <param-name>quartz:wait-on-shutdown</param-name>
    <param-value>false</param-value>
</context-param>
<context-param>
    <param-name>quartz:start-scheduler-on-load</param-name>
    <param-value>true</param-value>
</context-param>
   <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

我的java Listener QuartzServletContextListene类

package com.Adroit.java;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.DateBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;

import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.SimpleTrigger;
import org.quartz.TriggerBuilder;
import org.quartz.TriggerKey;
import org.quartz.impl.StdSchedulerFactory;

public class QuartzServletContextListener implements ServletContextListener
{
//    public static final String QUARTZ_FACTORY_KEY = "org.quartz.impl.StdSchedulerFactory.KEY";
    private StdSchedulerFactory factory = null;
    private Scheduler   scheduler = null;
    /**
     * Called when the container is shutting down.
     */
    public void contextDestroyed(ServletContextEvent sce)
    {
        try
        {
            factory.getDefaultScheduler().shutdown();
        } catch (SchedulerException ex)
        {
            ex.printStackTrace();
        }

    }

    /**
     * Called when the container is first started.
     */
    public void contextInitialized(ServletContextEvent sce)
    {
//        ServletContext ctx = sce.getServletContext();
        try
        {  
            System.out.println("context initialized");
            factory = new StdSchedulerFactory();
            JobDetail jobDetail = JobBuilder.newJob(JobSchedule.class)
            .withIdentity("db_refresher", "refresher")
            .build();

            CronTrigger trigger = TriggerBuilder
            .newTrigger()
            .withIdentity("dummyTriggerName", "group1")
            .withSchedule(CronScheduleBuilder.cronSchedule("1 45 13 * * ?"))
            .build();          
            scheduler=factory.getScheduler();
            scheduler.scheduleJob(jobDetail, trigger);
            scheduler.start();            
//            ctx.setAttribute(QUARTZ_FACTORY_KEY, factory);

        } catch (Exception ex)
        {
             ex.printStackTrace();
        }
    }
}

0 个答案:

没有答案