`
ldzyz007
  • 浏览: 717193 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

quartz集成

    博客分类:
  • java
阅读更多
在web环境下,Quartz可以通过配置文件来完成后台的作业调度,不必手工创建Trigger和Scheduler,其步骤如下:

首先将quartz.jar,以及lib目录下面core和optional两个目录中的所有jar全都放入项目WEB-INF\lib目录下

job就是一个简单的java类,这里的功能就是输出当前的时间了。

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{
public Helloworld() {

}

private static Log _log = LogFactory
.getLog(Helloworld.class);

public void execute(JobExecutionContext context)
throws JobExecutionException {
_log.info("Hello World! - " + new Date());
}
}


然后编写quartz.properties文件,这个文件的默认名称就是quartz.properties,如果启动项目的时候,Quartz没有在工程中找到该文件,就会从自己的jar包下面读取其默认的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.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin
org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger {1}.{0} fired job {6}.{5} at: {4, date, HH:mm:ss MM/dd/yyyy}
org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger {1}.{0} completed firing job {6}.{5} at {4, date, HH:mm:ss MM/dd/yyyy} with resulting trigger instruction code: {9}

org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
org.quartz.plugin.shutdownhook.cleanShutdown = true

上面的
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml

是用来配置定义job文件的名称。

然后编写quartz_job.xml,

<?xml version="1.0" encoding="UTF-8"?>
<quartz>
  <job>
    <job-detail>
      <name>helloworld</name>
      <group>group1</group>
      <job-class>Helloworld</job-class>
    </job-detail>
    <trigger>
      <cron>
        <name>test</name>
        <group>group1</group>
        <job-name>helloworld</job-name>
        <job-group>group1</job-group>
        <cron-expression>0 0/1 * * * ?</cron-expression>
     </cron>
    </trigger>
  </job>
</quartz>

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

这样,在启动Tomcat的时候,QuartzInitializerServlet这个Servlet就会自动读取quartz.properties这个配置文件,并初始化调度信息,启动Scheduler。
我在这里用的是Quartz1.5.0,在1.5.1中新增加了QuartzInitializerListener,但是似乎有些问题,始终启动不起来,而且更过分的是,它的api居然写错了,在<listener-class>这个标记中,用了QuartzInitializerServletListener,就算把机器砸了,它也找不到这个类啊!


一个Job类,
一个quartz.properties文件,
一个quertz_job.xml文件,
修改一下web.xml文件,
分享到:
评论

相关推荐

    Spring Quartz集成

    【Spring Quartz集成】是将强大的Quartz定时任务调度框架与Spring框架进行整合,以实现更加灵活、方便的定时任务管理。Quartz是一个开源的作业调度框架,能够按预定的时间执行任务,而Spring作为企业级应用的Java...

    Spring与QuartZ集成定时器

    【Spring与QuartZ集成定时器】是一种在Java应用程序中实现定时任务的常见方式,它结合了Spring框架的灵活性和Quartz的定时功能。Quartz是一个开源的作业调度框架,可以用于创建、调度和执行重复性的任务。Spring则...

    dropwizard-jobs, dropwizard的Quartz集成.zip

    dropwizard-jobs, dropwizard的Quartz集成 Dropwizard集成这个插件集成了 quartz调度器和 dropwizard,允许你轻松创建后台作业,这些作业不绑定到HTTP请求响应周期。 Quartz在应用程序启动时创建一个 threadpool,并...

    基于Spring+Quartz集成的Java定时任务调度器设计源码

    该项目采用Spring框架与Quartz集成,打造了一个支持集群环境的Java定时任务调度器,包含27个文件,涵盖5个XML配置文件、4个Java源文件、3个属性文件、3个SQL文件以及相关配置文件,旨在实现高效、稳定的定时任务管理...

    spring+quartz demo

    Spring 提供了与 Quartz 集成的模块,使得在 Spring 应用程序中使用 Quartz 更加便捷,包括 Job 实例的管理、触发器的配置以及对 Quartz Scheduler 的控制。 在这个 "spring+quartz demo" 中,我们可以学习到如何将...

    QuartZ.zipSpring+QuartZ集成 自定义注解!!!

    将Quartz与Spring集成,能够充分利用Spring的优秀特性来管理和配置定时任务,简化开发流程。 本文主要讨论的是如何在Spring应用中集成Quartz,并实现自定义注解来更便捷地定义和管理定时任务。首先,我们需要在项目...

    springboot与quartz集成的最简单实例

    在本文中,我们将深入探讨如何将Spring Boot与Quartz Scheduler集成,以实现高效且动态的定时任务管理。Spring Boot以其简洁的配置和强大的依赖管理深受开发者喜爱,而Quartz Scheduler则是一个广泛使用的开源作业...

    spring集成quartz所需文件

    标题 "spring集成quartz所需文件" 指的是将 Spring 框架与 Quartz 进行整合,以利用 Quartz 的定时任务功能。这种集成使得开发者可以在 Spring 环境下方便地管理调度任务,实现灵活的定时任务逻辑。 在描述中提到 ...

    spring2与quartz在Web整合

    4. **Web 应用集成**:在 Web 应用中,通常会将 Quartz 的 Scheduler 初始化为一个 ServletContextListener,这样在 Web 应用启动时就会自动启动 Scheduler。同时,为了确保在应用关闭时能够停止所有调度,也需要在 ...

    web项目集成quartz实例(9个)

    通过以上对每个文件名的解读,我们可以看到Quartz集成的全过程,从基础配置到高级特性,逐步构建出一套完整的定时任务管理系统。对于开发者来说,理解并掌握这些知识点,将有助于在实际项目中灵活运用Quartz,实现...

    Mybatis+Spring+SpringMVC+quartz多数据源切换

    "Mybatis+Spring+SpringMVC+quartz多数据源切换"的架构设计就是为了满足这样的场景。这个项目结合了四个关键的技术组件,它们分别是Mybatis、Spring、SpringMVC和Quartz,下面将详细介绍这些技术以及它们在多数据源...

    SpringBoot与Quartz集成实现分布式定时任务集群的代码实例

    SpringBoot与Quartz集成实现分布式定时任务集群的代码实例 今天小编就为大家分享一篇关于SpringBoot与Quartz集成实现分布式定时任务集群的代码实例,分享的内容具有很好的参考价值。下面是相关的知识点: 首先,...

    quartz入门例子,spring集成配置使用

    Spring集成quartz跑定时任务实例 自己写的例子并为实现job 有测试的主函数,请参考http://www.blogjava.net/baoyaer/articles/155645.html 博客信息 看此代码,项目里分为两大块,com文件夹下 为上面博客相关学习...

    定时调度-Spring集成Quartz

    **Spring与Quartz集成** Spring通过`org.springframework.scheduling.quartz`模块提供了与Quartz的集成。集成主要涉及以下几个核心组件: 1. **SchedulerFactoryBean**:这是Spring提供的一个工厂bean,用于配置和...

    quartz-all.zip

    Spring框架提供了一种便捷的方式将Quartz集成到应用程序中,通过Spring的JobDetail和Trigger接口,可以轻松地管理Quartz的作业和触发器。此外,Spring的ApplicationContext可以作为Scheduler的上下文,使得Spring...

    springboot-quartz案例

    在"springboot-quartz案例"中,我们看到的是一个完整的项目实例,它演示了如何将Quartz集成到SpringBoot应用中以实现任务调度。这个案例可能包含了以下关键知识点: 1. **SpringBoot基础**:SpringBoot简化了Spring...

    quartz界面化持久化管理

    - 可以通过Spring的`@Configuration`和`@Bean`注解,将Quartz集成到Spring应用上下文中,简化配置和管理。 9. **日志和监控**: - 配置合适的日志框架(如Log4j或Logback)记录任务执行情况,便于故障排查。 - ...

    Srping Quartz 资料多多

    你可以学习到如何将Quartz集成到Spring应用中,并利用Spring的依赖注入特性来管理和配置Quartz组件。 "quartz-1.5.2.jar" 是Quartz库的旧版本,虽然不是最新的,但依然能提供Quartz的基本功能。了解这个版本可以...

    QuartzDemo

    开发者可以在这里理解项目是如何组织的,并学习如何在C#中与Quartz集成。 `MailListener`可能是一个用于监听邮件的组件,可能在Quartz中被用作触发器,当接收到特定邮件时,执行预定的任务。这展示了一种实用的应用...

    spring quartz 表达式在线生成器

    2. **Spring与Quartz集成**:介绍如何在Spring应用中配置Quartz,包括使用`@EnableScheduling`注解开启调度,以及如何定义`@Scheduled`注解的任务。 3. **Cron表达式**:详细讲解Cron表达式的组成部分和语法,以及...

Global site tag (gtag.js) - Google Analytics