这期的项目需要用到定时调度,刚听到这个词(卧擦,这么牛逼,怎么做?),项目经理又补了一句,就是定时任务(原来是定时任务,惨汗~我心里就在想了那不就是timer吗?),任务分配下来了,开工了!
以前只写过简单的定时任务,不免心里没底,就百度了下。发现java实现定时调度任务的方法差不多有三种:第一,timer类实现。第二,ScheduleExecutorService。第三,spring+quartz。timer虽然不需要其他的jar包支持,但是timer实现的调度是单线程,并且灵活性不够,还有就是产生异常时,timer的调度任务会停止!第二种方法虽然不会存在timer类的缺陷,但是实现起来比较麻烦。最后我选择了第三种方法,一是因为我参与的项目是spring框架支持的。而是实现起来也比较容易,嘿嘿~
通过spring+quartz实现定时调度,首先在spring的配置文件加入如下的代码
<?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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 要调用的工作类 --> <bean id="quartzJob" class="com.QuartzJob"></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>
再写个需要调度的方法,如下:
package com; import java.util.Date; public class QuartzJob { public void work(){ System.out.println(new Date().toLocaleString()+"Quartz的任务调度!!!"); } }
这样就实现了简单定时调度任务了!
相关推荐
Quartz.net做为任务调度核心,利用Log4Net做为日志输出,C#完成WINDOWS服务在后台定时执行任务;
目前主流的分布式任务调度框架 个人建议用Quartz 文档全资料多 不过看自己项目需求把 TBSchedule和uncode-schedule基于zookeeper 不用数据库 总之每个框架有各自的优缺点,需求自己略做验证。 附件中有项目的下载...
Quartz是一个开源的任务调度框架,可以用来实现定时任务的调度,如定时发送邮件、定时备份数据等。Quartz具有很高的可靠性和灵活性,支持集群部署和分布式调度,并且提供了丰富的API和插件,可以轻松实现复杂的调度...
quartz 2.2.1 定时调度 java 最新版jar
Quartz-2.2.1 调度框架实现新增、修改、删除定时任务源码下载 本实例 使用了抽象和封装,如果对这个任务调度框架比较熟悉的话,还可以自定义的进行抽象和重构!!!!
Quartz框架包含了调度器监听、作业和触发器监听。你可以配置作业和触发器监听为全局监听或者是特定于作业和触发器的监听。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,...
Quartz,作业调度框架,简单的作业调度,定时,junit测试quartz
5、C#定时调度任务服务(Quartz.net做为任务调度核心,利用Log4Net做为日志输出,C#完成WINDOWS服务在后台定时执行任务) 6、android 后台定时执行任务 示例源码 7、C# Quatrz定时任务job实现 8、Quartz.NET定时任务...
springmvc中实现quartz定时任务(每分钟的第3秒执行任务调度方法)文章支持jar包
制定Quartz.NET调度计划,以及监控Quartz.NET以及Topshelf运行情况 应用场景:定时Job配置以及定时Job运行情况记录
定时调度框架quarts的JAR包,很好用
该jar是使用分布式定时任务或者quartz任务调度框架技术所需的jar包
Quartz是一个开源的任务调度框架。基于定时、定期的策略来执行任务是它的核心功能,比如x年x月的每个星期五上午8点到9点,每隔10分钟执行1次。Quartz有3个核心要素:调度器(Scheduler)、任务(Job)、触发器(Trigger)...
NULL 博文链接:https://medbricom.iteye.com/blog/1782765
Quartz是一个开源的任务调度框架,该下载文件中附有说明文档和demo例子,希望对各位朋友们有帮助。
本实例是对Quartz框架的简单使用,下载解压后放在tomcat中部署起来就可以运行了,在applicationContext.xml配置文件中配置了定时的时间,自己也可以更改调度时间,初学者可以看看,希望能帮助到您。
各种企业应用几乎都会碰到任务调度的需求,e.g.:定时清理系统垃圾文件,定时导入导出数据,定时发送邮件等等业务场景,Quartz提供了这样的功能,并且高度可控,本文将带您一起领略Quartz的风采
1.spring框架使用任务调度quartz的例子。 2.Web App用Quartz实现java schedule 3.详细讲解Quartz如何从入门到精通 4.用 Quartz 进行作业调度
深入解读Quartz的原理,定时任务框架是web开发过程中使用很多的框架之一