亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? quartzinitializerlistener.java

?? Java中非常實用流控制工具
?? JAVA
字號:
/*
 * Copyright 2004-2005 OpenSymphony
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy
 * of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 *
 */

/*
 * Previously Copyright (c) 2001-2004 James House
 */
package org.quartz.ee.servlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

import org.quartz.Scheduler;
import org.quartz.impl.StdSchedulerFactory;

/**
 * <p>
 * A ServletContextListner that can be used to initialize Quartz.
 * </p>
 *
 * <p>
 * You'll want to add something like this to your WEB-INF/web.xml file:
 *
 * <pre>
 *     &lt;context-param&gt;
 *         &lt;param-name&gt;config-file&lt;/param-name&gt;
 *         &lt;param-value&gt;/some/path/my_quartz.properties&lt;/param-value&gt;
 *     &lt;/context-param&gt;
 *     &lt;context-param&gt;
 *         &lt;param-name&gt;shutdown-on-unload&lt;/param-name&gt;
 *         &lt;param-value&gt;true&lt;/param-value&gt;
 *     &lt;/context-param&gt;
 *     &lt;context-param&gt;
 *         &lt;param-name&gt;start-scheduler-on-load&lt;/param-name&gt;
 *         &lt;param-value&gt;true&lt;/param-value&gt;
 *     &lt;/context-param&gt;
 *     
 *     &lt;listener&gt;
 *         &lt;listener-class&gt;
 *             org.quartz.ee.servlet.QuartzInitializerListener
 *         &lt;/listener-class&gt;
 *     &lt;/listener&gt;
 * </pre>
 *
 * </p>
 * <p>
 * The init parameter 'config-file' can be used to specify the path (and
 * filename) of your Quartz properties file. If you leave out this parameter,
 * the default ("quartz.properties") will be used.
 * </p>
 *
 * <p>
 * The init parameter 'shutdown-on-unload' can be used to specify whether you
 * want scheduler.shutdown() called when the servlet is unloaded (usually when
 * the application server is being shutdown). Possible values are "true" or
 * "false". The default is "true".
 * </p>
 *
 * <p>
 * The init parameter 'start-scheduler-on-load' can be used to specify whether
 * you want the scheduler.start() method called when the servlet is first loaded.
 * If set to false, your application will need to call the start() method before
 * the scheduler begins to run and process jobs. Possible values are "true" or
 * "false". The default is "true", which means the scheduler is started.
 * </p>
 *
 * A StdSchedulerFactory instance is stored into the ServletContext. You can gain access
 * to the factory from a ServletContext instance like this:
 * <br>
 * <pre>
 * StdSchedulerFactory factory = (StdSchedulerFactory) ctx
 *                .getAttribute(QuartzInitializerListener.QUARTZ_FACTORY_KEY);</pre>
 * <p>
 * The init parameter 'servlet-context-factory-key' can be used to override the
 * name under which the StdSchedulerFactory is stored into the ServletContext, in 
 * which case you will want to use this name rather than 
 * <code>QuartzInitializerListener.QUARTZ_FACTORY_KEY</code> in the above example.
 * </p>
 *
 * <p>
 * The init parameter 'start-delay-seconds' can be used to specify the amount
 * of time to wait after initializing the scheduler before scheduler.start()
 * is called.
 * </p>
 *
 * Once you have the factory instance, you can retrieve the Scheduler instance by calling
 * <code>getScheduler()</code> on the factory.
 *
 * @author James House
 * @author Chuck Cavaness
 * @author John Petrocik
 */
public class QuartzInitializerListener implements ServletContextListener {

    public static final String QUARTZ_FACTORY_KEY = "org.quartz.impl.StdSchedulerFactory.KEY";

    private boolean performShutdown = true;

    private Scheduler scheduler = null;

    /*
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     *
     * Interface.
     *
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     */

    public void contextInitialized(ServletContextEvent sce) {

        System.out.println("Quartz Initializer Servlet loaded, initializing Scheduler...");

        ServletContext servletContext = sce.getServletContext();
        StdSchedulerFactory factory;
        try {

            String configFile = servletContext.getInitParameter("config-file");
            String shutdownPref = servletContext.getInitParameter("shutdown-on-unload");

            if (shutdownPref != null) {
                performShutdown = Boolean.valueOf(shutdownPref).booleanValue();
            }

            // get Properties
            if (configFile != null) {
                factory = new StdSchedulerFactory(configFile);
            } else {
                factory = new StdSchedulerFactory();
            }

            // Always want to get the scheduler, even if it isn't starting, 
            // to make sure it is both initialized and registered.
            scheduler = factory.getScheduler();

            // Should the Scheduler being started now or later
            String startOnLoad = servletContext
                    .getInitParameter("start-scheduler-on-load");

            int startDelay = 0;
            String startDelayS = servletContext.getInitParameter("start-delay-seconds");
            try {
                if(startDelayS != null && startDelayS.trim().length() > 0)
                    startDelay = Integer.parseInt(startDelayS);
            } catch(Exception e) {
                System.out.println("Cannot parse value of 'start-delay-seconds' to an integer: " + startDelayS + ", defaulting to 5 seconds.");
                startDelay = 5;
            }

            /*
             * If the "start-scheduler-on-load" init-parameter is not specified,
             * the scheduler will be started. This is to maintain backwards
             * compatability.
             */
            if (startOnLoad == null || (Boolean.valueOf(startOnLoad).booleanValue())) {
                if(startDelay <= 0) {
                    // Start now
                    scheduler.start();
                    System.out.println("Scheduler has been started...");
                }
                else {
                    // Start delayed
                    scheduler.startDelayed(startDelay);
                    System.out.println("Scheduler will start in " + startDelay + " seconds.");
                }
            } else {
                System.out.println("Scheduler has not been started. Use scheduler.start()");
            }

            String factoryKey = 
                servletContext.getInitParameter("servlet-context-factory-key");
            if (factoryKey == null) {
                factoryKey = QUARTZ_FACTORY_KEY;
            }

            System.out.println("Storing the Quartz Scheduler Factory in the servlet context at key: "
                    + factoryKey);
            servletContext.setAttribute(factoryKey, factory);

        } catch (Exception e) {
            System.out.println("Quartz Scheduler failed to initialize: " + e.toString());
            e.printStackTrace();
        }
    }

    public void contextDestroyed(ServletContextEvent sce) {

        if (!performShutdown) {
            return;
        }

        try {
            if (scheduler != null) {
                scheduler.shutdown();
            }
        } catch (Exception e) {
            System.out.println("Quartz Scheduler failed to shutdown cleanly: " + e.toString());
            e.printStackTrace();
        }

        System.out.println("Quartz Scheduler successful shutdown.");
    }


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费色视频| 天堂影院一区二区| 蜜臀国产一区二区三区在线播放| 国产一区二区精品久久91| 欧美亚洲综合久久| 亚洲欧洲色图综合| 国产一区二区女| 日韩欧美区一区二| 亚洲国产色一区| 91丨九色porny丨蝌蚪| 久久久精品国产99久久精品芒果| 天堂va蜜桃一区二区三区 | 欧美视频在线一区| 国产精品久久久久影院色老大| 久久www免费人成看片高清| 久久精品欧美日韩| 26uuu另类欧美亚洲曰本| 午夜精品福利视频网站| 在线免费亚洲电影| 亚洲天堂a在线| 99国产精品国产精品毛片| 国产欧美一区二区三区在线看蜜臀| 日本va欧美va精品发布| 91精品国产欧美日韩| 午夜影视日本亚洲欧洲精品| 欧美这里有精品| 一二三区精品福利视频| 99re8在线精品视频免费播放| 国产精品激情偷乱一区二区∴| 国产寡妇亲子伦一区二区| 久久先锋资源网| 久久99精品国产麻豆婷婷洗澡| 日韩欧美一区二区视频| 麻豆精品精品国产自在97香蕉| 欧美一区二区三区人| 免费久久精品视频| 久久先锋影音av| 成人污污视频在线观看| 亚洲人午夜精品天堂一二香蕉| 成人看片黄a免费看在线| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 成人免费av在线| 亚洲精品高清在线观看| 欧美久久久久久久久久| 美国精品在线观看| 中文字幕二三区不卡| av成人免费在线观看| 亚洲国产你懂的| 欧美一区二区三区视频在线| 久久超碰97中文字幕| 国产欧美日韩在线| 色综合色狠狠综合色| 日本中文一区二区三区| 久久久久国产免费免费| 99久久国产综合精品色伊| 午夜一区二区三区视频| 精品国产三级电影在线观看| 成人av网在线| 亚洲超丰满肉感bbw| 精品1区2区在线观看| 99这里只有精品| 免费在线观看日韩欧美| 欧美激情一区二区三区| 欧美在线一二三| 国产一区二区在线观看视频| 亚洲人妖av一区二区| 日韩视频中午一区| 99视频在线精品| 美女脱光内衣内裤视频久久影院| 国产精品拍天天在线| 欧美日韩www| 成人午夜免费av| 日韩一区精品字幕| 亚洲三级免费观看| 日韩欧美国产精品| 在线观看视频一区二区| 国产成人精品免费看| 日韩在线一区二区三区| 中文字幕亚洲欧美在线不卡| 日韩欧美美女一区二区三区| 色老汉一区二区三区| 国产精品自拍三区| 奇米四色…亚洲| 中文字幕一区二区三区精华液| 日韩欧美一区中文| 欧美日本在线播放| 91麻豆蜜桃一区二区三区| 国产一区在线视频| 日韩va欧美va亚洲va久久| 亚洲乱码一区二区三区在线观看| 久久久午夜精品理论片中文字幕| 欧美老肥妇做.爰bbww视频| 91麻豆123| 不卡免费追剧大全电视剧网站| 免费av成人在线| 亚洲成人免费电影| 亚洲精品国产a| 中文字幕一区二区三区不卡在线 | 亚洲6080在线| 亚洲精品一二三| 国产精品白丝在线| 国产精品日产欧美久久久久| 日韩一区二区在线观看视频| 51精品久久久久久久蜜臀| 在线日韩av片| 欧美性大战久久久久久久蜜臀| 91丨porny丨国产入口| 成人动漫中文字幕| 成人av电影在线观看| 国产99久久久久| 国产白丝精品91爽爽久久| 国产高清精品在线| 夫妻av一区二区| 成人的网站免费观看| 99久久精品免费看| 色综合久久综合网欧美综合网| 99精品视频一区二区三区| 国产精品一区在线| 成人午夜av电影| 94色蜜桃网一区二区三区| 99精品久久只有精品| 91精品1区2区| 婷婷成人激情在线网| 日韩精品每日更新| 久久久久国产精品人| 欧美一区二区久久| 欧美不卡123| 欧美—级在线免费片| 欧美日韩三级一区| 欧美丰满一区二区免费视频| 男男视频亚洲欧美| 天天免费综合色| 亚洲高清视频的网址| 亚洲国产你懂的| 丁香激情综合国产| 欧美日韩国产高清一区二区| 国产无一区二区| 日韩成人一区二区三区在线观看| 国产精品99久久不卡二区| 欧美日韩一区久久| 亚洲视频一二三| 国产成人在线观看| 日韩视频一区二区三区| 亚洲线精品一区二区三区八戒| 国产一区二区三区美女| 欧美日韩一级视频| 亚洲精品你懂的| 蜜乳av一区二区| 欧美丰满少妇xxxxx高潮对白 | 国产91精品一区二区麻豆亚洲| 91传媒视频在线播放| 亚洲人成网站影音先锋播放| 成人黄色小视频| 国产精品久久看| av不卡在线观看| 亚洲图片你懂的| 91在线看国产| 亚洲欧美成aⅴ人在线观看| 国产激情一区二区三区桃花岛亚洲| 精品视频在线免费看| 国产精品免费久久| 成人黄色免费短视频| 久久久久国产精品人| 成人av电影免费观看| 一区二区三区免费看视频| 欧美性猛交xxxx黑人交| 麻豆freexxxx性91精品| 国产片一区二区三区| 欧美日韩高清一区二区不卡| 天堂在线一区二区| 国产精品你懂的| 日韩午夜在线播放| 99riav久久精品riav| 亚洲图片欧美视频| 久久一区二区视频| 欧美午夜电影一区| 国产在线不卡一卡二卡三卡四卡| 在线视频你懂得一区二区三区| 欧美日韩成人综合| 高潮精品一区videoshd| 日日摸夜夜添夜夜添国产精品| 欧美激情在线观看视频免费| 91精品国产日韩91久久久久久| 91视频免费播放| 成人午夜看片网址| 国产在线一区二区| 亚洲成a人片在线观看中文| 久久综合av免费| 精品免费99久久| 777色狠狠一区二区三区| 在线国产亚洲欧美| 首页国产欧美日韩丝袜| 又紧又大又爽精品一区二区| 亚洲欧美日韩中文播放| 国产精品每日更新| 久久久九九九九| 亚洲国产成人私人影院tom| 国产精品丝袜黑色高跟| 国产欧美日韩精品一区| 国产精品乱人伦|