<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 6  文章 - 129  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(14)

    隨筆檔案(6)

    文章分類(467)

    文章檔案(423)

    相冊(cè)

    收藏夾(18)

    JAVA

    搜索

    •  

    積分與排名

    • 積分 - 826371
    • 排名 - 49

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    一、獲取Quartz Web程序(Quartz GUI)。
    早期的 Quartz 框架開發(fā)者意識(shí)到一個(gè) GUI 對(duì)于某類用戶群體是必需的。幾年前,一個(gè) Web 應(yīng)用被創(chuàng)立,它可用于管理 Quartz 框架。雖說是歷經(jīng)了幾年有相當(dāng)投入的開發(fā),但不得不說的,總是時(shí)斷時(shí)續(xù)的。近來出現(xiàn)有更多的要求對(duì)這個(gè)應(yīng)用的更新與支持,因而又重新吸引了新的開發(fā)者自愿的工作并使之保持不斷更新。這個(gè)應(yīng)用就是知名的 Quartz Web 程序。Quartz Web 程序是作為 OpenSymphony 上 Quartz 源程序庫(kù)的一部分。它曾經(jīng)是放在 SourceForge 上的,但最近已遷移到新家了(譯者注:在 SourceForge 仍可下載到)。舊的站點(diǎn)是 http://sourceforge.net/projects/quartz;新的站點(diǎn)(包括 Quartz Web 程序) 可在 http://www.quartz-scheduler.org/community/repository.html 上找到。

    當(dāng)前,還沒有 Web 程序的二進(jìn)制版,而且標(biāo)準(zhǔn)的 Quartz 下載中也不包括 Web 程序,所以你需要進(jìn)入quartz的SVN(http://svn.terracotta.org/svn/quartz)源代碼樹下的webapp目錄即為Quartz Web 的源碼目錄,下載到 Quartz 源代碼樹并使用 quartz/webapp目錄下的 Ant 或Maven構(gòu)建文件來構(gòu)建這個(gè) Web 程序。

    最新版的quartz web采用了struts2+freemarker+spring2.5的架構(gòu),還用到了開源的sitemesh和dwr,并在web.xml中設(shè)置用org.quartz.ui.web.init.DefinitionInitializer啟動(dòng)quartz,具體設(shè)置如下:
    <servlet>
       <servlet-name>DefinitionInitializer</servlet-name>
       <servlet-class>
        org.quartz.ui.web.init.DefinitionInitializer
       </servlet-class>
       <init-param>
        <param-name>definition-file</param-name>
        <param-value>(PATH_TO_DEFINITIONS_FILE)</param-value>
        <!-- 
         if (PATH_TO_DEFINITIONS_FILE) is left as such, definitions are loaded from 
         /WEB-INF/classes/JobDefinitions.xml 
        -->
       </init-param>
       <load-on-startup>1</load-on-startup>
    </servlet>

    二、修改設(shè)置。
    運(yùn)行quartz/webapp 目錄下的 Ant 或Maven構(gòu)建文件來構(gòu)建這個(gè) Web 程序,會(huì)得到一各為quartz.war的包,但在打包前我們應(yīng)該修改其默認(rèn)設(shè)置。默認(rèn)下Quartz Web是被設(shè)置內(nèi)存(非持久化) 存儲(chǔ),如果要改為數(shù)據(jù)庫(kù)存諸則須修改quartz的設(shè)置文件quartz.properties,為其配置jdbc(需用到dbcp連接池,所以另需加入commons-dbcp和commons-pool包)數(shù)據(jù)源或JNDI數(shù)據(jù)。
    下面為jobStore各種設(shè)置:

    1、內(nèi)存存儲(chǔ):
    org.quartz.jobStore.misfireThreshold = 60000
    org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

    2、JDBC數(shù)據(jù)源(本例為oracle數(shù)據(jù)庫(kù),不同的數(shù)據(jù)庫(kù)只要修改org.quartz.jobStore.driverDelegateClass的值為對(duì)應(yīng)的數(shù)據(jù)庫(kù)即可):
    org.quartz.jobStore.misfireThreshold = 60000
    org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
    org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
    #org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v7Delegate
    org.quartz.jobStore.dataSource = myDS
    org.quartz.jobStore.tablePrefix = QRTZ_
    org.quartz.jobStore.isClustered = false
    org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
    org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@polarbear:1521:dev
    org.quartz.dataSource.myDS.user = quartz
    org.quartz.dataSource.myDS.password = quartz
    org.quartz.dataSource.myDS.maxConnections = 5

    3、JNDI數(shù)據(jù)源(本例為oracle數(shù)據(jù)庫(kù),不同的數(shù)據(jù)庫(kù)只要修改org.quartz.jobStore.driverDelegateClass的值為對(duì)應(yīng)的數(shù)據(jù)庫(kù)即可):
    org.quartz.jobStore.misfireThreshold = 60000
    org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
    org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
    #org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v7Delegate
    org.quartz.jobStore.dataSource = myDS
    org.quartz.jobStore.tablePrefix = QRTZ_
    org.quartz.jobStore.isClustered = false
    org.quartz.dataSource.myDS.jndiURL = java:comp/env/jdbc/JNDITEMP

    Quartz Web程序通過插件的形式設(shè)置日志記錄和自動(dòng)加載job配置文件,具體如下:
    1、日志記錄插件:
    org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin

    2、用插件org.quartz.plugins.xml.JobInitializationPlugin加載job配置文件,org.quartz.plugin.jobInitializer.fileNames指定了位于classpath下的job配置文件的名稱,這里配置了兩個(gè)插件,分別指定了三個(gè)job配置文件jobs.xml、jobs2.xml,jobs3.xml:

    org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
    # init plugin will load jobs.xml as a classpath resource i.e. /jobs.xml if not found on file system
    org.quartz.plugin.jobInitializer.fileNames=jobs.xml
    org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
    org.quartz.plugin.jobInitializer.failOnFileNotFound = false
    org.quartz.plugin.jobInitializer.scanInterval = 30 
    # org.quartz.plugin.jobInitializer.wrapInUserTransaction = true

    org.quartz.plugin.jobInitializerMultiple.class = org.quartz.plugins.xml.JobInitializationPlugin
    # init plugin will load jobs.xml as a classpath resource i.e. /jobs.xml and jobs2.xml if not found on file system
    org.quartz.plugin.jobInitializerMultiple.fileNames=jobs2.xml,jobs3.xml
    org.quartz.plugin.jobInitializerMultiple.overWriteExistingJobs = false
    org.quartz.plugin.jobInitializerMultiple.failOnFileNotFound = false
    # org.quartz.plugin.jobInitializerMultiple.wrapInUserTransaction = true

    Quartz Web程序通過JobDefinitions.xml來默認(rèn)加載常用的job的定義,默認(rèn)定義了三種quartz內(nèi)置的job,分別為:
    org.quartz.jobs.NativeJob
    org.quartz.jobs.NoOpJob
    org.quartz.jobs.ee.mail

    下面是Quartz內(nèi)置的的各種job:

    Job 類Job 用法
    org.quartz.jobs.FileScanJob檢查某個(gè)指定文件是否變化,并在文
    件被改變時(shí)通知到相應(yīng)監(jiān)聽器的 Job
    org.quartz.jobs.FileScanListener在文件被修改后通知 FileScanJob 的監(jiān)聽器
    org.quartz.jobs.NativeJob用來執(zhí)行本地程序(如 windows 下 .exe 文件) 的 Job
    org.quartz.jobs.NoOpJob什么也不做,但用來測(cè)試監(jiān)聽器不是很有用的。
    一些用戶甚至僅僅用它來導(dǎo)致一個(gè)監(jiān)聽器的運(yùn)行
    org.quartz.jobs.ee.mail.SendMailJob使用 JavaMail API 發(fā)送 e-mail 的 Job
    org.quartz.jobs.ee.jmx.JMXInvokerJob調(diào)用 JMX bean 上的方法的 Job
    org.quartz.jobs.ee.ejb.EJBInvokerJob用來調(diào)用 EJB 上方法的 Job

    三、運(yùn)行。將打包好的war包部署到服務(wù)上,訪問http://localhost:8080/quartz,然后用默認(rèn)用戶名:quartz 密碼:quartz 登陸便可激忿進(jìn)入系統(tǒng)。用戶名和密碼可在applicationContext.xml中修改,具體如下:
    <bean id="authenticator" class="org.quartz.ui.web.security.SimpleAuthenticator">
       <property name="username">
        <value>quartz</value>
       </property>
       <property name="password">
        <value>quartz</value>
       </property>
    </bean>

    Quartz Web 程序的截屏

    1、Quartz Web 程序主界面的左上方展示了它所擁有的特征列表


    2、Scheduler 控制界面,允許你啟動(dòng)、停止和暫停 Scheduler


    四、與現(xiàn)有Web程序結(jié)合(我已結(jié)合過,可行)。
    我們也可將Quartz web加入到現(xiàn)有的web程序中,具體做法為:
    1、將Quartz web的所有jar包和設(shè)置文件和頁(yè)面文件copy至現(xiàn)有Web工程中。
    2、合并各設(shè)置文件(主要是:web.xml、struts.xml和applicationContext.xml等)
    3、修改Quartz web各程序的訪問的命名空間。
    4、Quartz web并不完善,有好多明顯的錯(cuò)誤,好多頁(yè)面有錯(cuò)誤需要修改后才能通過gui成功配置各調(diào)度

    來自: http://apps.hi.baidu.com/share/detail/30631651


    posted on 2012-02-28 15:25 Ke 閱讀(6378) 評(píng)論(0)  編輯  收藏 所屬分類: quartz
    主站蜘蛛池模板: 日本视频免费观看| 国产亚洲AV夜间福利香蕉149 | 911精品国产亚洲日本美国韩国| 亚洲中文久久精品无码ww16| 久久久精品国产亚洲成人满18免费网站| 又爽又高潮的BB视频免费看| 亚洲av中文无码| 亚洲婷婷国产精品电影人久久| 亚洲毛片av日韩av无码| 亚洲精品无码99在线观看| 亚洲国产精品成人AV无码久久综合影院| 免费A级毛片无码久久版| 亚洲精品综合久久| 亚洲国产另类久久久精品小说 | 国产美女精品久久久久久久免费| 美女被免费视频网站a国产| 黄a大片av永久免费| 免费欧洲美女牲交视频| 亚洲色欲久久久久综合网| 国产亚洲精AA在线观看SEE| 久久亚洲精品成人| 亚洲免费视频观看| 亚洲人成网站色7799| 免费一区二区无码视频在线播放| 香蕉视频在线免费看| 亚洲电影免费在线观看| 最近最新MV在线观看免费高清| 日韩高清在线高清免费| www.亚洲一区| 亚洲av永久无码精品网站| 亚洲成人一级电影| 久久综合亚洲色hezyo| 国产精品美女久久久免费 | 永久免费av无码不卡在线观看| 精品久久久久久久免费人妻| 亚洲国产黄在线观看| 亚洲视频在线观看免费| 午夜在线a亚洲v天堂网2019 | 亚洲高清在线mv| 亚洲jizzjizz少妇| a级在线观看免费|