atititt.java定时任务框架选型Spring Quartz 注解总结

时间:2022-12-30 08:17:27

atititt.java定时任务框架选型Spring Quartz 总结

1. 。Spring Quartz  (ati recomm) 1

2. Spring Quartz具体配置 2

2.1. 增加context,task命名空间xml:
2

2.2. 增加xsi:schemaLocation valide 2

2.3. 我们的task任务扫描注解in spr.xml 2

2.4. 设置运行方法 3

2.5. 设置输出日志 3

3. 运行测试sprX走ok兰.
4

4. Quartz Scheduler,定时任务 4

5. java.util.Timer 4

6. 2) ServletContextListener 4

7. org.springframework.scheduling.timer.ScheduledTimerTask 5

8. problem 5

9. Cron表达式 5

10. 参考 6

1. 。Spring Quartz  (ati recomm)

·       Spring的scheduling。 quartz包中对Quartz的框架进行封装,使得开发时不用写任何Quartz和Spring的代码就可以实现定时任务。Spring通过 JobDetailBean,MethodInvokingJobDetailFactoryBean实现Job的定义,后者更加使用,只需指定要运行的 类,和该类中运行的方法即可,Spring将自动生成符合Quartz要求的JobDetail。例如:

· .web.xml :

·             加入

·            <listener>

·              <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

·            </listener>

Spring3中加强了注解的使用,其中计划任务也得到了增强,现在创建一个计划任务只需要两步就完成了:

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2.

3. Spring Quartz具体配置

3.1. 增加context,task命名空间xml:

xmlns:context="http://www.springframework.org/schema/context"

xmlns:task="http://www.springframework.org/schema/task"

3.2. 增加xsi:schemaLocation valide

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd

http://www.springframework.org/schema/task      http://www.springframework.org/schema/task/spring-task-3.1.xsd

3.3. 我们的task任务扫描注解in spr.xml

<!--  o723 ati task add -->

<task:annotation-driven/>

<context:annotation-config/>

<context:component-scan base-package="com.attilax.time.**"/>

<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

<!--  iha ssh recomm

<task:executor id="executor" pool-size="5" />

<task:scheduler id="scheduler" pool-size="10" />

<task:annotation-driven executor="executor" scheduler="scheduler" />

-->

</beans>

3.4. 设置运行方法

*/@Component

public class sysncTimeX {

public static Logger logger = Logger.getLogger("AtiTimerSyncer");

@Scheduled(cron="0 0 8 * * ?")

private static void sync() {

Date date =DateUtil. getDateFrmNet();

dateTimeX.  setSystime(date);

logger.info("--o7k1 sync time:ok");

}

///@Scheduled(fixedDelay=2000)//每2秒执行一次

3.5.  设置输出日志

#----------ati o7k..

log4j.logger.AtiTimerSyncer= info,AtiTimerSyncerAppender

log4j.appender.AtiTimerSyncerAppender = org.apache.log4j.DailyRollingFileAppender

log4j.appender.AtiTimerSyncerAppender.Encoding=UTF-8

log4j.appender.AtiTimerSyncerAppender.File=logs/AtiTimerSyncer.log

log4j.appender.AtiTimerSyncerAppender.MaxFileSize= 20MB

log4j.appender.AtiTimerSyncerAppender.Threshold=debug

log4j.appender.AtiTimerSyncerAppender.ImmediateFlush=true

log4j.appender.AtiTimerSyncerAppender.DatePattern='_'yyyy-MM-dd'.log'

log4j.appender.AtiTimerSyncerAppender.layout=org.apache.log4j.PatternLayout

log4j.appender.AtiTimerSyncerAppender.layout.ConversionPattern=%-4r %-5p [%d{yyyy-MM-dd HH:mm:ss}]   %m   %p  [thrd:%t]    loger:%c   (%C.%M.%L) %n

#-----------------

4. 运行测试sprX走ok兰.

public static void main(String[] args) {

// attilax 老哇的爪子  ml38   o7k

//   sync();

System.out.println(SpringUtil.getBean("sysncTimeX"));

}

Quartz使用-入门使用(java定时任务实现)

5. Quartz Scheduler,定时任务

Quartz是一个作业调度系统(a job scheduling system),负责在约定的时间到达时执行(或通知)其他软件控制。是一个Java的定时任务框架,使用它可以方便的实现计划任务,即在某个时间或每隔 一定时间运行一个任务。Quartz的核心是Job/JobDetail,Trigger和Scheduler。

6. java.util.Timer

1) 

这个方法应该是最常用的,不过这个方法需要手工启动你的任务:

如果要执行一些简单的定时器任务,无须做复杂的控制,也无须保存状态,那么可以考虑使用JDK 入门级的定期器Timer来执行重复任务。

2)

7.  2) ServletContextListener

这个方法在web容器环境比较方便,这样,在web server启动后就可以

自动运行该任务,不需要手工操作。

8. org.springframework.scheduling.timer.ScheduledTimerTask

3)

如果你用spring,那么你不需要写Timer类了,在schedulingContext-timer

.xml中加入下面的内容就可以了:

9. problem

Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 115 in XML document from file [D:\workspace\vodx\WebRoot\WEB-INF\classes\applicationContext-common.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'task:annotation-driven'.

10. Cron表达式

被用来配置CronTrigger实例。 Cron表达式是一个由 7个子表达式组成的字

符串。每个子表达式都描述了一个单独的日程细节。这些子表达式用空格分隔,分别表示: 

1. Seconds 秒 

2. Minutes 分钟 

3. Hours 小时 

4. Day-of-Month 月中的天 

5. Month 月 

6. Day-of-Week 周中的天 

7. Year (optional field) 年(可选的域)

剩下的就是corn表达式了、具体使用以及参数请百度google、

【秒】   【分】  【时】   【日】  【月】   【周】  【年】

下面只例出几个式子

CRON表达式    含义 

"0 0 12 * * ?"    每天中午十二点触发 

"0 15 10 ? * *"    每天早上10:15触发 

"0 15 10 * * ?"    每天早上10:15触发 

"0 15 10 * * ? *"    每天早上10:15触发 

"0 15 10 * * ? 2005"    2005年的每天早上10:15触发 

"0 * 14 * * ?"    每天从下午2点开始到2点59分每分钟一次触发 

"0 0/5 14 * * ?"    每天从下午2点开始到2:55分结束每5分钟一次触发 

"0 0/5 14,18 * * ?"    每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发 

"0 0-5 14 * * ?"    每天14:00至14:05每分钟一次触发 

"0 10,44 14 ? 3 WED"    三月的每周三的14:10和14:44触发 

"0 15 10 ? * MON-FRI"    每个周一、周二、周三、周四、周五的10:15触发

11. 参考

JAVA定时执行任务的三种方法 - gembin - BlogJava.htm

Quartz使用-入门使用(java定时任务实现) - lotusyangjun的专栏 - 博客频道 - CSDN.NET.htm

java定时任务管理 - 塵风的blog - ITeye技术网站.htm

quartz 框架定时任务,使用spring @Scheduled注解执行定时任务 - 萧若寒 - 博客频道 - CSDN.NET.htm

quartz 框架定时任务,使用spring @Scheduled注解执行定时任务 - 萧若寒 - 博客频道 - CSDN.NET.htm

atititt.java定时任务框架选型Spring Quartz 注解总结的更多相关文章

  1. java框架之Spring&lpar;2&rpar;-注解配置IOC&amp&semi;AOP配置

    注解配置IoC 准备 1.要使用注解方式配置 IoC,除了之前引入的基础 jar 包,还需要引入 spring-aop 支持包,如下: 2.在 applicationContext.xml 中引入 c ...

  2. Java后端框架之Spring Boot详解,文末有Java分布式实战项目视频可取

    在 Java 后端框架繁荣的今天,Spring 框架无疑是最最火热,也是必不可少的开源框架,更是稳坐 Java 后端框架的龙头老大. 用过 Spring 框架的都知道 Spring 能流行是因为它的两 ...

  3. quartz 框架定时任务,使用spring &commat;Scheduled注解执行定时任务

    配置quartz 在spring中需要三个jar包: quartz-1.6.5.jar.commons-collections-3.2.jar.commons-logging-1.1.jar 首先要配 ...

  4. java框架之Spring&lpar;5&rpar;-注解驱动开发

    准备 1.使用 maven 创建一个 java 项目,依赖如下: <dependency> <groupId>org.springframework</groupId&g ...

  5. java定时任务框架Quartz入门与Demo搭建

  6. 在Listener&lpar;监听器&rpar;定时启动的TimerTask&lpar;定时任务&rpar;中使用Spring&commat;Service注解的bean

    1.有时候在项目中需要定时启动某个任务,对于这个需求,基于JavaEE规范,我们可以使用Listener与TimerTask来实现,代码如下: public class TestTaskListene ...

  7. 解决Spring&plus;Quartz无法自动注入bean问题

    问题 我们有时需要执行一些定时任务(如数据批处理),比较常用的技术框架有Spring + Quartz中.无奈此方式有个问题:Spring Bean无法自动注入. 环境:Spring3.2.2 + Q ...

  8. Spring框架中的Quartz定时任务使用笔记(通过&commat;Scheduled注解的方式实现)

    1.修改spring的xml配置信息 applicationContext.xml 三个部分内容 1.xmlns添加:xmlns:task="http://www.springframewo ...

  9. 基于spring&plus;quartz的分布式定时任务框架

    问题背景 我公司是一个快速发展的创业公司,目前有200人,主要业务是旅游和酒店相关的,应用迭代更新周期比较快,因此,开发人员花费了更多的时间去更=跟上迭代的步伐,而缺乏了对整个系统的把控 没有集群之前 ...

随机推荐

  1. bootstrap Table 中给某一特定值设置table选中

    bootstrap Table 中给某一特定值设置table选中 需求: 如图所示:左边地图人员选定,右边表格相应选中. 功能代码: //表格和图标联动 function changeTableSel ...

  2. Android生命周期

    Android的生命周期如下图所示: A和B两个Activity,从A启动B活动.执行的方法: A活动 onCreate() onStart() onResume()                 ...

  3. redis教程

    windows下安装redis: http://jingyan.baidu.com/article/49ad8bce40174f5834d8fa24.html redis教程: http://www. ...

  4. 利用runTime,实现以模型为主的字典转模型(注意与KVC的区别)

    将字典转化为模型,面向模型开发,是在开发中最为常用的功能.利用KVC可以将字典转换为模型,但是前提有三个约束,一个是必须保证模型的属性个数大于等于字典个数,二是属性名称与字典的key必须相同,三是对于 ...

  5. &lbrack;每日一题&rsqb; OCP1z0-047 &colon;2013-08-26 TIMESTAMP WITH LOCAL TIME ZONE&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;&period;112

    正确答案:C 使用TIMESTAMP WITH LOCAL TIME ZONE数据类型,用户插入数据时,oracle将会把用户的数据结合用户session的时区信息自动换算成数据库设定的时区的时间进行 ...

  6. &lbrack;cocos2d-x&rsqb;&lbrack;apk打包&rsqb;[Fatal signal 11][andriod]Eclipse编译Fatal signal 11报错-都是字符赋值惹的祸

    流程重现: 使用coco2d-x制作了一个2048,在xcode模拟器执行以及在pad上真机调试都是没有问题的. 可是在使用eclipse调试打包android可以执行,可是进入游戏之后会在随机的地方 ...

  7. &commat;dynamic、&commat;synthesize

    声明property属性后,有2种实现选择: @synthesize 编译器期间,让编译器自动生成getter/setter方法. 当有自定义的存或取方法时,自定义会屏蔽自动生成该方法 @dynami ...

  8. 析构函数中的virtual是否必要?

    我们经常听到建议要把构造函数不能为虚,析构函数最好为虚,这是为什么? 如下例子: // pvtable1.cpp : 定义控制台应用程序的入口点. #include "stdafx.h&qu ...

  9. mysql exists 如何使用

    还没时间看,exists用的少  ==>当你只需要判断后面的查询结果是否存 在时使用exists() http://edu.codepub.com/2011/0208/29218.php 今天正 ...

  10. Keepalived保证Nginx高可用配置

    Keepalived保证Nginx高可用配置部署环境 keepalived-1.2.18 nginx-1.6.2 VM虚拟机redhat6.5-x64:192.168.1.201.192.168.1. ...