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();
}


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值