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,可以极大地提高开发效率和系统的可维护性。
基于springboot的任务调度技术quartz简单的实现demo,根目录有数据表,需要配置到您自己的数据库中,之后点击运行即可,比较有趣的是其中会用到一些反射知识,还有难点就是要在调度任务执行的类上@service添加类的...
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是一款开源的作业调度框架,它允许开发者创建和安排任务执行。在Java应用程序中,Quartz能够帮助我们在特定的时间点或按照预设的周期执行某些功能,如数据收集、日志清理等。当我们需要终止某个正在运行的任务...
Quartz 是一个开源的作业调度框架,用于在 Java 应用程序中实现复杂的时间调度任务。它允许开发者定义定时任务,这些任务会在指定的时间点自动执行。Quartz 提供了一套丰富的 API 和支持,可以方便地与 Spring 框架...
Quartz.NET是一个强大的开源作业调度框架,用于在.NET环境中创建和执行定时任务。它提供了高度灵活的调度功能,使得开发者可以轻松地定义和控制任务的执行时间。在"Quartz.net作业调度自定义定时执行任务多任务执行...
Quartz.Net是一个强大的任务调度框架,它在.NET环境中被广泛应用,尤其在需要执行定时任务的系统中。Quartz.Net的设计灵感来源于Java的Quartz库,它允许开发者灵活地定义和管理作业(Jobs)以及触发器(Triggers),...
《.NET Quartz 任务调度平台源码解析与应用》 .NET Quartz 是一款强大的任务调度框架,它为.NET开发者提供了一种高效、灵活的方式来安排和执行周期性任务。Quartz.NET 是开源项目Quartz的.NET版本,它允许开发人员...
- **调度任务**:将Jobs和Triggers关联,注册到Scheduler中,然后启动Scheduler以开始执行任务。 - **监控和管理**:Quartz提供了多种工具和API用于监控和管理任务调度,包括查看任务状态、暂停或恢复任务、删除...
Quartz任务调度器是一款强大的开源任务调度框架,广泛应用于Java应用程序中,用于自动化定时任务的执行。它提供了灵活的任务调度机制,使得开发者可以方便地定义、安排和执行各种任务。在与Spring框架整合后,Quartz...
Spring框架和Quartz是两个广泛使用的工具,它们可以协同工作以实现复杂和灵活的任务调度。本篇文章将深入探讨如何使用Spring与Quartz结合来创建一个任务调度的小例子。 首先,Spring是一个开源的Java企业级应用开发...
3. **调度器配置**:`SchedulerFactoryBean`是Spring对Quartz调度器的包装,它管理所有的触发器和任务。在这里,我们将`cron`触发器添加到调度器中,使得任务与触发器关联起来。 接下来,我们看下服务类和服务的...
这个"quartz调度系统工具.zip"文件很可能包含了用于简化Quartz配置和管理的实用工具。 Quartz的核心概念包括: 1. **作业(Jobs)**:是实际执行的工作单元,开发者需要自定义Job类来实现特定的任务逻辑。 2. **...
- **调度任务**:将Job和Trigger关联并添加到Scheduler,然后启动Scheduler。 7. **监控和管理** Quartz提供了一个Web界面JMX(Java Management Extensions)和API,允许我们监控和管理正在运行的任务,如暂停、...
Quartz是Java领域的一款强大的开源任务调度框架,广泛应用于企业级应用系统中,用于执行定时或周期性的任务。在这个"quartz1.5.0 任务调度demo"中,我们将会探讨如何使用Quartz实现任务的增删改功能,以及其三大核心...
Quartz是一个开源的作业调度框架...通过这个简单的Quartz demo,你可以学习到如何在Java项目中集成Quartz,创建和调度任务。在实际开发中,你可以根据项目需求调整Job和Trigger的配置,实现更加复杂和灵活的任务调度。
1. 单纯的Quartz调度 在不依赖任何框架的情况下,直接使用Quartz API进行任务调度。首先,你需要创建一个Job类,实现`org.quartz.Job`接口,并重写`execute(JobExecutionContext context)`方法。然后,定义Trigger...
在Java世界里,Quartz是一个强大的、完全开源的作业调度框架,广泛用于构建复杂的时间触发任务。本篇文章将深入探讨如何使用Quartz在Java应用程序中实现任务调度。 Quartz库提供了一个灵活的API,可以创建、调度和...