一,quratz比較詳細的教程:http://www.blogjava.net/Unmi/archive/2008/08/24
/223926.html。還可以直接下載教程,很全面。jar包下載地址:http://www.opensymphony.com/quartz/
。
二,需要快速開發一個簡單的任務調度,請看下面:
參考資料:http://callan.iteye.com/blog/160139
常常会在Web应用中需要启动一个自己写的服务,比如说刷新主页,统计数据等,下面提供一种简单的方式.
(一)作業類:
通過實現 org.quartz.job 接口 , 覆盖了 execute(JobExecutionContext context) 方法。
这个方法可以包含我们想要执行的任何代码。
----------------------------------------------------------------------------------------------------------------------------------
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class CoinJob implements Job{
public CoinJob(){
}
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("MyJob----"
+
new
Date());
//這個方法裡面寫入你想要執行的內容
}
}
----------------------------------------------------------------------------------------------------------------------------------
(二)編寫quartz.properties文件:
這個文件的默認名稱是quartz.properties。如果在項目啟動的時候,Quartz沒有在工程中找到該文件,則會從自己的jar包讀取其默認的quartz.properties文件。
quartz.properties
#---------调度器属性----------------
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one
#---------线程配置---------------
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 2
org.quartz.threadPool.threadPriority = 4
#---------作业存储设置------------
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
#---------插件配置-------------
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
属性的介绍
1.调度器属性:分别设置调度器的实例名(
instanceName
) 和实例 ID (
instanceId
)。属性 org.quartz.scheduler.instanceName
可以是你喜欢的任何字符串。默认名字一般都采用
QuartzScheduler,
第二个属性org.quartz.scheduler.instanceId
和instaneName
属性一样,instanceId
属性也允许任何字符串。这个值必须是在所有调度器实例中是唯一的,尤其是在一个集群当中。假如你想 Quartz 帮你生成这个值的话,可以设置为 AUTO
。
2、线程池属性:
这些线程在 Quartz 中是运行在后台担当重任的。threadCount
属性控制了多少个工作者线程被创建用来处理 Job。原则上是,要处理的 Job 越多,那么需要的工作者线程也就越多。threadCount
的数值至少为 1
。Quartz 没有限定你设置工作者线程的最大值,但是在多数机器上设置该值超过100的话就会显得相当不实用了,特别是在你的 Job 执行时间较长的情况下。这项没有默认值,所以你必须为这个属性设定一个值。
threadPriority
属性设置工作者线程的优先级。优先级别高的线程比级别低的线程更优先得到执行。threadPriority 属性的最大值是常量 java.lang.Thread.MAX_PRIORITY
,等于10。最小值为常量 java.lang.Thread.MIN_PRIORITY
,为1。这个属性的正常值是 Thread.NORM_PRIORITY
,为5。大多情况下,把它设置为5,这也是没指定该属性的默认值。
最后一个要设置的线程池属性是 org.quartz.threadPool.class
。这个值是一个实现了 org.quartz.spi.ThreadPool
接口的类的全限名称。Quartz 自带的线程池实现类是 org.quartz.smpl.SimpleThreadPool
,它能够满足大多数用户的需求。这个线程池实现具备简单的行为,并经很好的测试过。它在调度器的生命周期中提供固定大小的线程池。你能根据需求创建自己的线程池实现,如果你想要一个随需可伸缩的线程池时也许需要这么做。这个属性没有默认值,你必须为其指定值。
3、作业存储属性:
作业存储部分的设置描述了在调度器实例的生命周期中,Job 和 Trigger 信息是如何被存储的。把调度器信息存储在内存中非常的快也易于配置。当调度器进程一旦被终止,所有的 Job 和 Trigger 的状态就丢失了。要使 Job 存储在内存中需通过设置 org.quartz.jobStrore.class
属性为 org.quartz.simpl.RAMJobStore,在
Cron Trigger 和“作业存储和持久化”会用到的不同类型的作业存储实现。
4、其他插件属性:org.quartz.plugin.jobInitializer.class
=
org.quartz.plugins.xml.JobInitializationPlugin默认时,
JobInitializationPlugin插件会在 classpath 中搜索名为 quartz_jobs.xml 的文件并从中加载
Job 和 Trigger 信息。
其他插件后叙……
然後要編寫quartz.properties中“org.quartz.plugin.jobInitializer.fileName = quartz_job.xml”的
quartz_job.xml文件,如下:
----------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<quartz>
<job>
<job-detail>
<name>coinJob</name> // job名
<group>job</group> // job組
<job-class>com.top.scheduler.CoinJob</job-class> //實現類
</job-detail>
<trigger>
<cron>
<name>t1</name>
<group>job</group>
<job-name>coinJob</job-name> //該觸發器trigger對應的job名
<job-group>job</job-group> //該觸發器trigger對應的job組
<cron-expression>0/30 * * * * ?</cron-expression> //每隔30秒出發一次
</cron>
</trigger>
</job>
</quartz>
----------------------------------------------------------------------------------------------------------------------------------
<cron-expression>0/20 * * * * ?</cron-expression>
Quartz的Cron 表达式包括以下 7 个字段:秒 分 小时 月内日期 月 周内日期 年(可选字段)
意思是:从0秒开始计算,安排任务每 30秒执行一次。
(三)修改配置web.xml
----------------------------------------------------------------------------------------------------------------------------------
<servlet>
<servlet-name>quartz</servlet-name>
<servlet-class>
org.quartz.ee.servlet.QuartzInitializerServlet
</servlet-class>
<init-param>
<param-name>config-file</param-name>
<param-value>/quartz.properties</param-value>
</init-param>
<init-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>start-scheduler-on-load</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 或者監聽器也可以
<context-param>
<param-name>config-file</param-name>
<param-value>/quartz.properties</param-value>
</context-param>
<context-param>
<param-name>shutdown-on-unload</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>start-scheduler-on-load</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>
org.quartz.ee.servlet.QuartzInitializerListener
</listener-class>
</listener>
-->
----------------------------------------------------------------------------------------------------------------------------------
分享到:
相关推荐
在Spring框架中,Quartz可以被集成来实现复杂的定时任务调度。本文将深入探讨Quartz的使用,包括其基本概念、配置、API以及在Web应用中的实际应用。 首先,Quartz的核心概念包括Job(作业)、Trigger(触发器)和...
本示例“web环境下Quartz作业调度入门源代码(Jboss)”提供了一个基础的Quartz在Web应用中的实现,下面我们将详细探讨相关的知识点。 1. **Quartz简介** - Quartz是一个轻量级的作业调度框架,支持Cron表达式和复杂...
在Web应用中,Quartz的配置通常在`web.xml`中进行。我们需要配置`SchedulerFactoryBean`,指定配置文件路径(如`quartz.properties`),并设置启动时自动初始化调度器: ```xml ...
1. **添加QuartzInitializerServlet**:在`web.xml`中配置`QuartzInitializerServlet`。 2. **配置文件**:可以通过配置文件`quartz.properties`或`quartz-job.xml`来定义触发器和定时描述等。 #### 五、Quartz高级...
在上下文初始化时,我们可以初始化Quartz调度器,并加载XML配置文件中的任务。同时,我们还需要设置一个文件监听器来监控XML配置文件,一旦文件变化,触发重新加载配置。 在实现过程中,需要注意几点: 1. 配置文件...
在Spring中,我们可以定义一个实现了`org.springframework.scheduling.quartz.JobDetailBean`的bean,以及一个实现了`org.springframework.scheduling.quartz.CronTriggerBean`的bean,来分别表示Job和Trigger。...
在 web.xml 文件中,需要配置 Quartz 的 ServletContextListener,以便于在服务器启动时执行任务。ServletContextListener 是一种特殊的 Servlet,能够监听 Servlet 容器的生命周期事件。 在上面的代码中,...
Quartz 是一个开源的作业调度框架,常用于Java Web应用程序中进行定时任务的管理。它提供了高度可配置性,能够灵活地安排、管理和执行任务,是企业级应用中不可或缺的一部分。这篇博客文章“quartz 在WEB中应用小结...
同时,为了确保在应用关闭时能够停止所有调度,也需要在 Web.xml 中配置适当的销毁方法。 5. **错误和问题处理**:整合过程中可能会遇到的问题包括但不限于:库版本冲突、Scheduler 初始化失败、作业执行异常、线程...
Java作业调度之Quartz是一个广泛使用的开源任务调度框架,它允许开发者在应用程序中安排复杂的作业执行计划。Quartz是基于Java的,因此可以轻松地集成到任何Java应用程序中,包括Web应用。这篇博客文章(虽然链接...
Quartz是一个开源的作业调度框架,它为Java应用程序提供了强大的定时和计划功能。在Java项目中,Quartz常被用来执行周期性...在实际开发中,你可以根据项目需求调整Job和Trigger的配置,实现更加复杂和灵活的任务调度。
Quartz是一款功能强大的开源作业调度框架,常用于Java Web应用中进行定时任务的管理。它提供了丰富的API,允许开发者灵活地定义和控制任务执行。在Web工程中集成Quartz,可以实现诸如定时发送邮件、数据同步、清理...
接下来,需要在 web.xml 中配置 Quartz 的初始化Servlet: ```xml <servlet-name>QuartzInitializer <servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet <param-name>config-file <param-value>...
这个"quartz调度系统工具.zip"文件很可能包含了用于简化Quartz配置和管理的实用工具。 Quartz的核心概念包括: 1. **作业(Jobs)**:是实际执行的工作单元,开发者需要自定义Job类来实现特定的任务逻辑。 2. **...
Quartz是一款强大的、开源的作业调度框架,常用于Java应用程序中,包括Web项目,来实现定时任务的执行。本文将详细介绍如何使用Quartz结合cron表达式在Web项目中创建一个定时器。 首先,理解Quartz的基本概念至关...
1. **引入依赖**:在Spring Boot的`pom.xml`或`build.gradle`文件中添加Quartz库的依赖。这将确保我们在项目中可以使用Quartz的相关类和API。 2. **配置Quartz**:在`application.properties`或`application.yml`中...
Quartz是一款开源的作业调度框架,它允许程序创建并管理定时任务。在Java开发中,Quartz被广泛用于实现各种周期性任务的自动化执行,比如数据备份、报表生成、系统维护等。本篇将深入探讨Quartz如何通过配置文件来...
8. **Web应用集成**:在Web环境中,可以通过Servlet上下文监听器(ServletContextListener)来启动和停止Quartz调度器,使其与Web应用的生命周期同步。 9. **实战示例**:博客文章可能包括创建一个简单的定时任务,...
Quartz是一款开源的作业调度框架,它允许在Java应用程序中创建和执行定时任务。在Web项目中使用Quartz,可以实现后台任务的自动化执行,比如数据同步、日志清理、发送邮件等,无需用户手动触发。下面将详细介绍如何...
在提供的"quartz-spring_demo-master"项目中,可能包含了完整的示例代码,包括Spring和Quartz的配置、作业和触发器的定义,以及如何在Spring环境中启动和管理这些任务。这个项目可以帮助你理解并实践Spring与Quartz...