`

Quartz调度任务

阅读更多
package example.chapter9;

import java.util.Date;

public class CheckDiskFreeSpace {

    public void check() {
        // get disk free space:
        long freeSpace = Math.random() > 0.5 ? 100000000 : 200000000;
        System.out.println("Check disk free space at " + new Date());
        if(freeSpace<100*1024*1024) { // <100MB
            System.out.println("Warning! Low disk free space...");
        }
    }
}


<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd"
>

    <bean name="checkDiskFreeSpace" class="example.chapter9.CheckDiskFreeSpace" />

    <bean name="checkDiskJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="checkDiskFreeSpace" />
        <property name="targetMethod" value="check" />
        <property name="concurrent" value="false" />
    </bean>

    <!-- Trigger -->

    <!-- 周期性运行checkDiskJob -->
    <bean id="repeatTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
        <property name="jobDetail" ref="checkDiskJob" />
        <!-- 1分钟后启动 -->
        <property name="startDelay" value="600" />
        <!-- 5分钟检查一次 -->
        <property name="repeatInterval" value="300" />
    </bean>



    <!-- 启动调度器 -->

    <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="repeatTrigger" />
            </list>
        </property>
    </bean>

</beans>



package example.chapter9;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

    public static void main(String[] args) {
        new ClassPathXmlApplicationContext("config.xml");
    }

}




以下是别人写的 ,未测试
2 spring中使用Quartz完成时序调度工作

1、需要jar  quartz-1.6.5.jar\jta_101.jar

2、创建application-schedule.xml文件

<?xml version="1.0" encoding="UTF-8"?>   
<beans xmlns="http://www.springframework.org/schema/beans"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
    xmlns:context="http://www.springframework.org/schema/context"  
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">   
    <!--  自定义对象-->   
       <bean id="uploadXmlScheduler" class="self.phoenix.application.internal.UploadXmlScheduler">   
        <property name="uploadService" ref="uploadService"/>   
    </bean>   
       <!-- 利用MethodInvokingJobDetailFactoryBean将调用uploadXmlScheduler中的uploadXmlController方法-->   
    <bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >   
       <property name="targetObject" ref="uploadXmlScheduler" />   
       <property name="targetMethod" value="uploadXmlController" />   
       <!-- 使jobs不并发运行-->   
       <property name="concurrent" value="false" />   
    </bean>   
    <!-- Spring提供两个子类triggers: SimpleTriggerBean,CronTriggerBean -->   
    <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">   
       <property name="jobDetail" ref="myJobDetail" />   
       <!-- wait 10 seconds before starting repeated execution -->   
       <property name="startDelay" value="10000" />   
       <!-- run every 60 seconds *10 -->   
       <property name="repeatInterval" value="600000" />   
    </bean>   
    <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">   
       <property name="jobDetail" ref="myJobDetail" />   
        <!-- run every morning at 23:59 am -->   
       <property name="cronExpression" value="0 59 23 * * ?" />    
    </bean>   
    <!--  调用两个触发器 -->   
    <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">   
       <property name="triggers">   
             <list>   
               <ref bean="simpleTrigger"/>   
               <ref bean="cronTrigger"/>   
             </list>   
        </property>   
    </bean>   
    <!-- 注入所需的bean -->   
    <bean name="uploadService" class="self.phoenix.application.internal.dao.UploadServiceImpl" />   
</beans>  

3、创建 定时调用的类 UploadXmlScheduler.java
public class UploadXmlScheduler {   
  
    private UploadService uploadService;   
  
    public void setUploadService(UploadService uploadService) {   
        this.uploadService = uploadService;   
    }   
       
    public void uploadXmlController(){   
               /** 执行操作 **/  
        uploadService.uploadXml();   
    }   
  
       
}  










分享到:
评论

相关推荐

    Quartz调度任务学习(快速开发入门)(转)

    Quartz调度任务学习(快速开发入门),帮助你快速掌握Quartz的开发,使用性较强

    quartz调度任务

    Quartz是一款开源的作业调度框架,它为...总的来说,Quartz调度任务是一个强大的工具,可以帮助开发者轻松管理定时任务,提升系统的自动化程度。通过理解和熟练运用Quartz,可以极大地提高开发效率和系统的可维护性。

    Quartz调度任务基于Springboot实现

    基于springboot的任务调度技术quartz简单的实现demo,根目录有数据表,需要配置到您自己的数据库中,之后点击运行即可,比较有趣的是其中会用到一些反射知识,还有难点就是要在调度任务执行的类上@service添加类的...

    Spring-Quartz调度任务所需要的6个jar包

    Spring Quartz定时任务所需要的6个jar包,找到6个可是不容易哦。commons-logging-1.2.jar,commons-logging-1.2.jar,jta.jar,quartz-1.6.6.jar,commons-collections-3.2.jar,spring.jar

    Quartz调度、终止执行的任务

    Quartz是一款开源的作业调度框架,它允许开发者创建和安排任务执行。在Java应用程序中,Quartz能够帮助我们在特定的时间点或按照预设的周期执行某些功能,如数据收集、日志清理等。当我们需要终止某个正在运行的任务...

    quartz 定时任务调度

    Quartz 是一个开源的作业调度框架,用于在 Java 应用程序中实现复杂的时间调度任务。它允许开发者定义定时任务,这些任务会在指定的时间点自动执行。Quartz 提供了一套丰富的 API 和支持,可以方便地与 Spring 框架...

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

    Quartz.NET是一个强大的开源作业调度框架,用于在.NET环境中创建和执行定时任务。它提供了高度灵活的调度功能,使得开发者可以轻松地定义和控制任务的执行时间。在"Quartz.net作业调度自定义定时执行任务多任务执行...

    Quartz.Net任务调度

    Quartz.Net是一个强大的任务调度框架,它在.NET环境中被广泛应用,尤其在需要执行定时任务的系统中。Quartz.Net的设计灵感来源于Java的Quartz库,它允许开发者灵活地定义和管理作业(Jobs)以及触发器(Triggers),...

    .net Quartz 任务调度平台源码

    《.NET Quartz 任务调度平台源码解析与应用》 .NET Quartz 是一款强大的任务调度框架,它为.NET开发者提供了一种高效、灵活的方式来安排和执行周期性任务。Quartz.NET 是开源项目Quartz的.NET版本,它允许开发人员...

    利用Quartz实现任务调度的集群

    - **调度任务**:将Jobs和Triggers关联,注册到Scheduler中,然后启动Scheduler以开始执行任务。 - **监控和管理**:Quartz提供了多种工具和API用于监控和管理任务调度,包括查看任务状态、暂停或恢复任务、删除...

    Quartz任务调度器

    Quartz任务调度器是一款强大的开源任务调度框架,广泛应用于Java应用程序中,用于自动化定时任务的执行。它提供了灵活的任务调度机制,使得开发者可以方便地定义、安排和执行各种任务。在与Spring框架整合后,Quartz...

    Spring+Quartz实现任务调度的小例子

    Spring框架和Quartz是两个广泛使用的工具,它们可以协同工作以实现复杂和灵活的任务调度。本篇文章将深入探讨如何使用Spring与Quartz结合来创建一个任务调度的小例子。 首先,Spring是一个开源的Java企业级应用开发...

    spring任务调度(Quartz )

    3. **调度器配置**:`SchedulerFactoryBean`是Spring对Quartz调度器的包装,它管理所有的触发器和任务。在这里,我们将`cron`触发器添加到调度器中,使得任务与触发器关联起来。 接下来,我们看下服务类和服务的...

    quartz调度系统工具.zip

    这个"quartz调度系统工具.zip"文件很可能包含了用于简化Quartz配置和管理的实用工具。 Quartz的核心概念包括: 1. **作业(Jobs)**:是实际执行的工作单元,开发者需要自定义Job类来实现特定的任务逻辑。 2. **...

    quartzDemo任务调度例子

    - **调度任务**:将Job和Trigger关联并添加到Scheduler,然后启动Scheduler。 7. **监控和管理** Quartz提供了一个Web界面JMX(Java Management Extensions)和API,允许我们监控和管理正在运行的任务,如暂停、...

    quartz1.5.0 任务调度demo

    Quartz是Java领域的一款强大的开源任务调度框架,广泛应用于企业级应用系统中,用于执行定时或周期性的任务。在这个"quartz1.5.0 任务调度demo"中,我们将会探讨如何使用Quartz实现任务的增删改功能,以及其三大核心...

    quartz任务调度框架简单实用小demo

    Quartz是一个开源的作业调度框架...通过这个简单的Quartz demo,你可以学习到如何在Java项目中集成Quartz,创建和调度任务。在实际开发中,你可以根据项目需求调整Job和Trigger的配置,实现更加复杂和灵活的任务调度。

    quartz3种调度形式+传参.zip

    1. 单纯的Quartz调度 在不依赖任何框架的情况下,直接使用Quartz API进行任务调度。首先,你需要创建一个Job类,实现`org.quartz.Job`接口,并重写`execute(JobExecutionContext context)`方法。然后,定义Trigger...

    Java使用quartz实现任务调度定时任务

    在Java世界里,Quartz是一个强大的、完全开源的作业调度框架,广泛用于构建复杂的时间触发任务。本篇文章将深入探讨如何使用Quartz在Java应用程序中实现任务调度。 Quartz库提供了一个灵活的API,可以创建、调度和...

Global site tag (gtag.js) - Google Analytics