一、获取Quartz Web程序(Quartz GUI)。早期的 Quartz 框架开发者意识到一个 GUI 对于某类用户群体是必需的。几年前,一个 Web 应用被创立,它可用于管理 Quartz 框架。虽说是历经了几年有相当投入的开发,但不得不说的,总是时断时续的。近来出现有更多的要求对这个应用的更新与支持,因而又重新吸引了新的开发者自愿的工作并使之保持不断更新。这个应用就是知名的 Quartz Web 程序。Quartz Web 程序是作为 OpenSymphony 上 Quartz 源程序库的一部分。它曾经是放在 SourceForge 上的,但最近已迁移到新家了(译者注:在 SourceForge 仍可下载到)。旧的站点是 http://sourceforge.net/projects/quartz;新的站点(包括 Quartz Web 程序) 可在 http://www.quartz-scheduler.org/community/repository.html 上找到。

当前,还没有 Web 程序的二进制版,而且标准的 Quartz 下载中也不包括 Web 程序,所以你需要进入quartz的SVN(http://svn.terracotta.org/svn/quartz)源代码树下的webapp目录即为Quartz Web 的源码目录,下载到 Quartz 源代码树并使用 quartz/webapp目录下的 Ant 或Maven构建文件来构建这个 Web 程序。

最新版的quartz web采用了struts2+freemarker+spring2.5的架构,还用到了开源的sitemesh和dwr,并在web.xml中设置用org.quartz.ui.web.init.DefinitionInitializer启动quartz,具体设置如下:

DefinitionInitializer

org.quartz.ui.web.init.DefinitionInitializer

definition-file

(PATH_TO_DEFINITIONS_FILE)

1

二、修改设置。运行quartz/webapp 目录下的 Ant 或Maven构建文件来构建这个 Web 程序,会得到一各为quartz.war的包,但在打包前我们应该修改其默认设置。默认下Quartz Web是被设置内存(非持久化) 存储,如果要改为数据库存诸则须修改quartz的设置文件quartz.properties,为其配置jdbc(需用到dbcp连接池,所以另需加入commons-dbcp和commons-pool包)数据源或JNDI数据。

下面为jobStore各种设置:

1、内存存储:

org.quartz.jobStore.misfireThreshold = 60000

org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore

2、JDBC数据源(本例为oracle数据库,不同的数据库只要修改org.quartz.jobStore.driverDelegateClass的值为对应的数据库即可):

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数据源(本例为oracle数据库,不同的数据库只要修改org.quartz.jobStore.driverDelegateClass的值为对应的数据库即可):

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程序通过插件的形式设置日志记录和自动加载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配置文件的名称,这里配置了两个插件,分别指定了三个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来默认加载常用的job的定义,默认定义了三种quartz内置的job,分别为:

org.quartz.jobs.NativeJob

org.quartz.jobs.NoOpJob

org.quartz.jobs.ee.mail

下面是Quartz内置的的各种job:Job 类Job 用法

org.quartz.jobs.FileScanJob检查某个指定文件是否变化,并在文

件被改变时通知到相应监听器的 Job

org.quartz.jobs.FileScanListener在文件被修改后通知 FileScanJob 的监听器

org.quartz.jobs.NativeJob用来执行本地程序(如 windows 下 .exe 文件) 的 Job

org.quartz.jobs.NoOpJob什么也不做,但用来测试监听器不是很有用的。

一些用户甚至仅仅用它来导致一个监听器的运行

org.quartz.jobs.ee.mail.SendMailJob使用 JavaMail API 发送 e-mail 的 Job

org.quartz.jobs.ee.jmx.JMXInvokerJob调用 JMX bean 上的方法的 Job

org.quartz.jobs.ee.ejb.EJBInvokerJob用来调用 EJB 上方法的 Job

三、运行。将打包好的war包部署到服务上,访问http://localhost:8080/quartz,然后用默认用户名:quartz 密码:quartz 登陆便可激忿进入系统。用户名和密码可在applicationContext.xml中修改,具体如下:

quartz

quartz

Quartz Web 程序的截屏

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

2、Scheduler 控制界面,允许你启动、停止和暂停 Scheduler

四、与现有Web程序结合(我已结合过,可行)。我们也可将Quartz web加入到现有的web程序中,具体做法为:

1、将Quartz web的所有jar包和设置文件和页面文件copy至现有Web工程中。

2、合并各设置文件(主要是:web.xml、struts.xml和applicationContext.xml等)

3、修改Quartz web各程序的访问的命名空间。

4、Quartz web并不完善,有好多明显的错误,好多页面有错误需要修改后才能通过gui成功配置各调度

java quartz下载_下载、设置和运行Quartz(GUI)图形界面程序----Quartz Web相关推荐

  1. win10上运行linux程序吗,Win10可以运行 Linux 的图形界面程序了

    Win10可以运行 Linux 的图形界面程序了 2016年04月13日 16:39作者:cnBeta编辑:李佳辉 分享 正如大家所知道的,大多数 Linux 上的命令行二进制程序现在可以原生地运行在 ...

  2. 手机怎样运行linux命令行,不仅是命令行 Windows 10 也可以运行 Linux 的图形界面程序了...

    微软在 Build 2016 上宣布这个新闻后,很快就在其发布的 Insider 预览版 14316 上将这个功能展示给了迫不及待的粉丝们.根据微软当前的技术说明,目前除了部分命令行程序不能运行之外, ...

  3. Python编写的桌面图形界面程序实现更新检测和下载安装

    在Python中我们有很多种方案来编写桌面图形用户界面程序,譬如内置的 Tkinter .强大的 PyQt5 和 PySide2 ,还有 wxPython .借助这些或内置或第三方的模块,我们可以轻松 ...

  4. linux命令界面下载kettle,kettle在linux环境中打开图形界面-Go语言中文社区

    kettle在linux环境中打开图形界面 kettle数据转换的时候需要图形界面 当运行./spoon.sh时,如果没有图形界面,会出现下面的结果 ./spoon.sh [root@localhos ...

  5. 简单介绍使用 ssh 连接远程服务器运行图形界面程序

    使用 SSH 远程连接运行图形界面程序  windwiny.20080310  简单介绍使用 ssh 连接远程服务器运行图形界面程序.  一.服务器安装运行SSH服务.在Ubuntu下:  安装 代码 ...

  6. python的电脑推荐_推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  7. 【转载】Windows 10 运行 Linux子系统的图形界面程序

    从 Windows 10 的 Bash 环境中启动图形界面的 Linux 程序的方法.一位名叫 w2qw 的开发者找到了一个可以在 Bash 之外运行 X 服务器的方法,从而可以在 Windows 1 ...

  8. cmd运行java语名_怎么用cmd运行java文件

    [怎么用cmd运行java文件]怎么在cmd里面执行java文件 找到存放要执行的JAVA的文件目录,然后在目录中运行CMD,运行JAVA程序之前要先编译,1.javac 文件名.java回车2.ja ...

  9. wxml 点击图片下载_云存储之上传图片和展示图片(小程序云开发)

    1.云存储介绍 2.demo代码(上传图片/文件) cloud.wxml 云存储 上传图片 cloud.js // miniprogram/pages/cloud/cloud.js const db ...

最新文章

  1. 交叉分解+Cross decomposition
  2. JavaScript属性操作
  3. 配电箱接线口诀_电路设计和家庭电路控制系统大全,学会接线不求人!
  4. 技术达人“创造营”官宣:Microsoft Learn 学习平台C位出道
  5. xshell常用的命令
  6. Python的类成员函数、静态函数和成员的函数的比较
  7. 01 GOF设计模式的定义和分类
  8. 8647服务器装系统,今天重新安装了系统,麻烦请红夜鬼先生进来帮我看一下
  9. PHP手机号截取前三位后四位
  10. matlab polyval之后建立方程,[matalb]polyfit多项式拟合函数以及polyval
  11. 论坛网站进行帖子保存php,PHPwind论坛专用采集器
  12. js for in对象key排序
  13. 一网打尽!2018网络安全事件最全的盘点
  14. 高校社团管理系统java_高校社团管理系统设计及实现.doc
  15. Spring 官方修复零日漏洞,推出 Spring Boot 2.6.6、2.5.12 等新版本
  16. 计算机一级考试ps知识点,计算机一级考试PS备考训练题及答案
  17. PHP 开发-XAMPP 安装
  18. 新C++(5):异常
  19. 企业培训视频如何防止被下载和盗用?
  20. 【js课设】电子画板01

热门文章

  1. MR756-ASEMI车用整流二极管MR756
  2. 编写Python语言,使用循环求解1到100之间数的偶数和
  3. CG资源网站(持续更新)
  4. 【面试相关】(三)如何面试程序员?
  5. 关于计算机如何实现减法操作
  6. 需求文档中的“项目前景与范围”
  7. 如何制作Windows10屏保?简单呀--Windows batch
  8. Java从入门到精通十七(Stream 流)
  9. ProGuard入门
  10. 使用java Apache poi 根据word模板生成word报表