`
liangjian103
  • 浏览: 177516 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Quartz 定时任务web使用

 
阅读更多

首先创建一个Web项目,将quartz-1.6.0.jar,以及lib目录下面core下所有jar,optional目录下的所有commons-beanutils.jar和commons-digester-1.7.jar,build目录下的jta.jar都放入Web项目的WEB-INF"lib目录下。

创建一个简单的job类HelloWorld,它的功能很简单,就是输出当前的时间,代码如下:

package com.lj.quartz;

import java.util.Date;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class Helloworld implements Job
{
private static Log logger = LogFactory.getLog(Helloworld.class);//日志记录器
public Helloworld()
{
}
public void execute(JobExecutionContext context) throws JobExecutionException
{
logger.info("Hello World! - " + new Date());
}
}

然后按照上一篇文章《Quartz 框架快速入门(二)》中所讲述的内容编写quartz.properties文件。如果启动项目的时候,Quartz没有在工程中找到该文件,就会从自己的jar包下面读取其默认的properties文件,其内容如下

#============================================================================
# Configure Main Scheduler Properties
#============================================================================
org.quartz.scheduler.instanceName = QuartzScheduler
org.quartz.scheduler.instanceId = AUTO
#============================================================================
# Configure ThreadPool
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 5
#============================================================================
# Configure JobStore
#============================================================================
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
#============================================================================
# Configure Plugins
#============================================================================
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingJobHistoryPlugin
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileNames = jobs.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = true
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.jobInitializer.scanInterval = 10
org.quartz.plugin.jobInitializer.wrapInUserTransaction = false

然后编写任务配置文件jobs.xml,内容如下:

<?xml version='1.0' encoding='utf-8'?>
<quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opensymphony.com/quartz/JobSchedulingData
http://www.opensymphony.com/quartz/xml/job_scheduling_data_1_5.xsd"
version="1.5">
<job>
<job-detail>
<name>HelloWorld</name>
<group>DEFAULT</group>
<description>
A job that just for test
</description>
<job-class>
com.lj.quartz.Helloworld
</job-class>
<volatility>false</volatility>
<durability>false</durability>
<recover>false</recover>
</job-detail>
<trigger>
<simple>
<name>HelloTrigger1</name>
<group>DEFAULT</group>
<job-name>HelloWorld</job-name>
<job-group>DEFAULT</job-group>
<start-time>2008-09-03T15:56:30</start-time>
<!-- repeat indefinitely every 10 seconds -->
<repeat-count>-1</repeat-count>
<repeat-interval>10000</repeat-interval>
</simple>
</trigger>
</job>
</quartz>

可以看到,在配置文件中把jobdetail和trigger都作了完整的定义,并组合成一个job。下面,我们把上面两个文件都放入/WEB-INF/classes目录下,然后按照api中的说明修改一下web.xml,内容如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<display-name>Quartz Initializer Servlet</display-name>
<servlet-class>
org.quartz.ee.servlet.QuartzInitializerServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
<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>
</servlet>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

这样,在启动Tomcat的时候,QuartzInitializerServlet这个Servlet就会自动读取quartz.properties这个配置文件,并初始化调度信息,启动Scheduler

附件为:整合Spring后的使用方式。

分享到:
评论

相关推荐

    C# Quartz.Net定时任务操作明细、完整过程

    本文将详细介绍如何使用Quartz.Net进行定时任务的配置与执行。 首先,**通过Nuget安装框架**非常简单,只需在Visual Studio中打开Nuget包管理器,搜索"Quartz.Net",然后安装指定版本,例如2.5.0。安装完成后,即可...

    quartZ定时任务.zip

    SpringBoot与Quartz的集成使得在微服务环境中实现定时任务变得非常便捷。下面将详细介绍如何利用Quartz在SpringBoot项目中创建、管理和停止定时任务,并根据业务需求配置cron表达式来设定执行周期。 1. **Quartz...

    C#Quartz定时任务

    【C# Quartz定时任务】是基于C#编程语言实现的一种定时任务框架,它允许开发者在.NET环境中创建和管理定时任务。这个项目是在Visual Studio 2010开发环境下编写的,提供了一个可以直接运行的示例(demo),方便快速...

    springmvc中实现quartz定时任务

    在Spring MVC框架中集成Quartz定时任务是一项常见的需求,它允许开发者在特定时间点执行一些周期性的业务逻辑。Quartz是一个强大的、完全开源的作业调度框架,可以与Java应用程序无缝结合,提供灵活的任务调度功能。...

    WEB管理的Quartz定时任务

    在Web管理的Quartz定时任务中,我们通常会结合SpringMVC和MyBatis来构建一个完善的后台管理系统,以便于管理和监控定时任务。下面将详细介绍这个系统的组成部分和实现方式。 **1. Quartz简介** Quartz是Java平台上...

    Quartz定时任务图形界面的系统

    Quartz定时任务图形界面系统是一种基于Java开发的高级任务调度平台,它允许开发者安排和管理应用程序中的各种任务执行。在本系统中,Quartz与其他流行的技术框架如SpringMVC、MyBatis、Thymeleaf和Bootstrap3进行了...

    quartz定时任务,在web项目中的使用方法

    Quartz是一款开源的作业调度框架,它允许在Java应用程序中创建和执行定时任务。在Web项目中使用Quartz,可以实现后台任务的自动化执行,比如数据同步、日志清理、发送邮件等,无需用户手动触发。下面将详细介绍如何...

    springboot+quartz 动态化配置定时任务

    SpringBoot结合Quartz框架,可以实现灵活且高效的定时任务管理。本教程将深入探讨如何在SpringBoot项目中实现Quartz的动态化配置,允许在页面上进行查看、添加、修改、删除以及暂停等操作。 一、SpringBoot与Quartz...

    Quartz 定时WebForm和WinForm使用的dll

    总之,Quartz定时功能在WebForm和WinForm应用中的使用涉及到了DLL的引用、Quartz的配置、任务和触发器的定义,以及对`IScheduler`的管理和控制。正确理解和运用这些知识点,可以帮助开发者构建出高效、可靠的定时...

    C# quartz.net 定时任务源码 可以远程控制

    综上所述,这个项目提供了一种使用C#和Quartz.NET创建可远程控制的定时任务解决方案。它不仅能够根据需求动态加载新的DLL扩展任务,还能够作为Windows服务稳定运行,满足了企业级应用对定时任务的高要求。对于想要...

    基于SSM+quartz的定时任务管理demo

    为了方便管理和监控定时任务,可以开发一个Web界面,利用Quartz提供的API查询Job和Trigger信息,支持新增、修改、删除等操作。此外,还可以查看任务执行日志,以便于排查问题。 总结,本Demo旨在通过SSM+Quartz的...

    quartz定时任务

    在“quartz定时任务”这个主题中,我们将深入探讨Quartz的核心特性、如何配置和使用它,以及如何实现集群。 1. **Quartz的核心特性** - **灵活的调度**:Quartz支持多种调度模式,如简单触发器、cron触发器和Nth...

    Quartz.net作业调度自定义定时执行任务多任务执行c#

    在"Quartz.net作业调度自定义定时执行任务多任务执行c#"这个主题中,我们将深入探讨如何使用Quartz.NET来实现自定义的定时任务,以及如何处理多任务执行。 首先,我们需要理解Quartz.NET的基本概念。在Quartz.NET中...

    quartz 定时任务调度

    总结,Quartz定时任务调度是Java开发中不可或缺的工具,尤其对于需要定时执行任务的系统来说。通过学习和掌握Quartz的使用,以及cron表达式的编写,我们可以构建出强大且灵活的任务调度系统。同时,利用插件系统和...

    spring+springMVC+mybatis+quartz动态定时任务创建

    在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"spring+springMVC+mybatis+quartz动态定时任务创建"就是一个常见的技术栈,用于实现这样的目标。这个组合充分利用了各组件的优势,提供了强大的后端服务支持...

    Spring2.5+Quartz定时任务简单例子web工程

    在"Spring2.5+Quartz定时任务简单例子web工程"中,我们可以看到这两个框架的结合使用,主要目标是实现基于 Web 应用的定时任务管理。以下将详细介绍这个项目中可能涉及的知识点: 1. **Spring 2.5**: - **依赖...

    ASP.NET使用Quartz.NET实现定时任务调度

    结合使用Quartz.NET和TopShelf,我们可以构建一个在Windows服务中运行的定时任务调度系统。 Quartz.NET的特性包括: 1. **灵活的调度**:Quartz.NET支持多种调度模式,如简单触发器、cron触发器,可以按照精确时间...

    Quartz定时任务处理案例基于jsp

    这是一个完整的使用Quartz定时处理案例,虽然简单,但是一个可运行的案例项目,包括了Quartz的包,及配置文件quartz.properties和quartz_jobs.xml文件的配置方法,及在web.xml文件中配置Quartz等方法。看了这个例子...

Global site tag (gtag.js) - Google Analytics