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

QuartZ用法实例二

阅读更多
参考文章【http://www.cnblogs.com/kay/archive/2007/11/02/947372.html】
            【http://www.diybl.com/course/3_program/java/javajs/2008530/118164.html】
各种企业应用几乎都会碰到任务调度的需求,就拿论坛来说:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积分排名,每隔30分钟执行锁定用户解锁任务。对于一个典型的MIS系统来说,在每月1号凌晨统计上个月各部门的业务数据生成月报表,每半个小时查询用户是否已经有快到期的待处理业务……,这样的例子俯拾皆是,不胜枚举。

    Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。
Spring为创建Quartz的Scheduler、Trigger和JobDetail提供了便利的FactoryBean类,以便能够在Spring 容器中享受注入的好处。此外Spring还提供了一些便利工具类直接将Spring中的Bean包装成合法的任务。Spring进一步降低了使用Quartz的难度,能以更具Spring风格的方式使用Quartz。概括来说它提供了两方面的支持:
    1)为Quartz的重要组件类提供更具Bean风格的扩展类;
    2)提供创建Scheduler的BeanFactory类,方便在Spring环境下创建对应的组件对象,并结合Spring容器生命周期进行启动和停止的动作。
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

    <!-- 要调用的工作类 -->
    <bean id="quartzJob" class="test.Task"></bean>
    <!-- 定义调用对象和调用对象的方法 -->
    <bean id="jobtask"
        class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <!-- 调用的类 -->
        <property name="targetObject">
            <ref bean="quartzJob" />
        </property>
        <!-- 调用类中的方法 -->
        <property name="targetMethod">
            <value>work</value>
        </property>
    </bean>
    <!-- 定义触发时间 -->
    <bean id="doTime"
        class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail">
            <ref bean="jobtask" />
        </property>
        <!-- cron表达式 -->
        <property name="cronExpression">
            <value>10,15,20,25,30,35,40,45,50,55 * * * * ?</value>
        </property>
    </bean>
    <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序  -->
    <bean id="startQuertz" lazy-init="false" autowire="no"
        class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="doTime" />
            </list>
        </property>
    </bean>
</beans>
要调度的工作类:
public class Task{
    public void work() {
        System.out.println("Quartz的任务调度!");
    }
}
主测试文件:
public class QuartzTest {
    public static void main(String[] args) {
        System.out.println("Test start.");
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        //如果配置文件中将startQuertz bean的lazy-init设置为false 则不用实例化
        System.out.print("Test end..\n");

    }

}

注意:项目中需要加载需要加入spring.jar   quartz-all-1.6.0.jar   log4j-1.2.14.jar   commons-collections.jar   jta.jar   commons-logging.jar这几个包
分享到:
评论

相关推荐

    Quartz.Net用法实例

    Quartz.Net可以实现诸如定时发送邮件、定时处理数据、定时轮询数据库等计划任务,只需要几句代码,不需要Windows计划任务也能实现诸如“每天晚上7:00发送邮件”、“每隔半个小时查询一次库存”之类的目的

    基于java的Quartz的实例

    基于java的Quartz的实例,直接导入MyEclipse中就能用,可以把引入的java.SQL及用到的东西删除掉

    quartz实例用法

    quartz实例用法

    quartz Web应用实例

    quartz框架在web中的应用,代码简单完整,且可以正常运行,对初学者很有帮助。

    Quartz的应用实例

    NULL 博文链接:https://xusong.iteye.com/blog/1262366

    Java任务调度框架Quartz教程实例

    Quartz框架是一个全功能、开源的任务调度服务,可以集成几乎任何的java应用程序—从小的单片机系统到大型的电子商务系统。Quartz可以执行上千上万的任务调度

    quartz集群完整应用实例

    NULL 博文链接:https://kenny-liu.iteye.com/blog/634853

    Spring+Quartz集群部署案例

    最近项目中使用了spring+Quartz定时任务、但是项目最近要集群部署、多个APP下如何利用Quartz 协调处理任务。 大家可以思考一下、现在有 A、B... 解决方案二:使用其实Quartz自身可以实例化数据库的特性就可以解决问题

    quartz线程工程实例

    quartz线程工程实例,工程应用实例,自己定义JOB类

    Quartz+spring实例应用

    Quartz+spring实例应用 导入项目直接可以运行,注释详细

    quartz 详细例子

    quartz 详细例子 quartz 详细例子 java 调度 工作流

    quartz使用例子

    quartz使用例子 每一步讲解的都非常的详细

    quartz应用

    quartz应用实例,讲述了quartz的几种用法,清晰,简介

    Quartz开源项目实例

    Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以...

    Spring Quartz 任务调度实例

    Spring Quartz 任务调度实例 可直接运行 可应用服务器启动调用 也可main入口调用 主要用于打jar包用

    quartz在spring中的使用实例

    Quartz 是一个强大的企业级 Schedule 工具,也是目前最好的开源 Schedule 工具。实例中quartz在spring中的应用及quartz详细时间配置。

    quartz-1.4.5.zip

    Quartz能在应用服务器或者Servlet容器中实例化,并且能够参与XA事务。 Quartz能够以独立的方式运行(在它自己的Java虚拟机中),可以通过RMI使用Quartz。 Quartz可以被实例化为独立程序的集群(有负载均衡和容错...

    Quartz.NET demo

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的...

Global site tag (gtag.js) - Google Analytics