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

log4j.appender.AtiTimerSyncerAppender.MaxBackupIndex=10

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

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_墨客网-知识拆解+经典定时任务案例 精讲Java定时任务框架Elastic-Job和Quartz...

    课程介绍 精讲Elastic-job + Quartz实现企业级定时任务 掌握分布式集群方式的定时任务框架,可以弥补企业中常用的单点任务的缺点,以更高的性能更好的稳定性处理分布式定时任务服务:本课程带 ...

  2. java定时任务框架elasticjob详解

    这篇文章主要介绍了java定时任务框架elasticjob详解,Elastic-Job是ddframe中dd-job的作业模块中分离出来的分布式弹性作业框架.该项目基于成熟的开源产品Quartz和Zo ...

  3. Java进击框架:Spring(一)

    Java进击框架:Spring(一) 前言 创建Spring项目 Spring IoC容器和Beans介绍 Bean的概述 Spring IoC 配置元数据 实例化Bean 依赖注入 循环依赖 详细配 ...

  4. 用java里的junit框架_使用Java JUnit框架里的@SuiteClasses注解管理测试用例

    使用Java JUnit框架里的@SuiteClasses注解管理测试用例 发布时间:2020-08-13 13:43:08 来源:ITPUB博客 阅读:96 作者:i042416 Suppose y ...

  5. 分布式定时任务框架选型,写得太好了!

    点击关注公众号,实用技术文章及时了解 为什么我们需要定时任务 我们先思考下面几个业务场景的解决方案: 支付系统每天凌晨1点跑批,进行一天清算,每月1号进行上个月清算 电商整点抢购,商品价格8点整开始优 ...

  6. Java中12 种 Spring 常用注解,必须记住!

    1.声明bean的注解 @Component 组件,没有明确的角色 @Service 在业务逻辑层使用(service层) @Repository 在数据访问层使用(dao层) @Controller ...

  7. JAVAEE框架之Spring新注解

    五.Spring5 新注解 ​ 新的注解有用,为后面的SpringBoot可以打一个基础,因为到SpringBoot的课程, 多了很多注解.这时候,先了解一部分. 5.1 @Configuration ...

  8. Java定时任务的解决方案(Quartz等)

    ① JDK定时器:Timer 理论基础:时间轮算法 链表或者数组实现时间轮:while-true-sleep 遍历数组,每个下标放置一个链表,链表节点放置任务,遍历到了就取出执行 缺陷:假设数组长度1 ...

  9. java ssh框架 struts spring hibernate 简介

    目录 什么是SSH框架 浅谈Struts 什么是Struts Struts的核心构成 为什么使用Struts 浅谈Hibernate 什么是Hibernate Hibernate的核心构成 浅谈Spr ...

  10. java定时任务_java:springBoot使用@Scheduled注解配置定时任务

    定时任务的实现有多种,其中一种就是使用Spring提供的注解: @Schedule . 下面举个简单的例子 1.先在springboot的入口处添加@EnableScheduling这个注解 2.总开 ...

最新文章

  1. R语言ggplot2可视化使用ggsave将可视化图像结果保存为SVG文件实战
  2. DA14580开发血迹12--完整Profile解析(以心率服务为例)
  3. Struts2(批量类型转换器struts2.3.4)
  4. 该线程或进程自上一个步骤以来已更改_多线程与高并发
  5. boost::math::chi_squared用法的测试程序
  6. 【工业控制】学习喷墨打印技术 怎么能不知道波形
  7. c语言函数 t啥意思,C语言函数大全(t开头)
  8. 深入理解linux系统下proc文件系统内容
  9. linux编译mesa,如何在Ubuntu 16.04,17.10中安装Mesa 17.3.3
  10. python的celery的面试_python面试基础题总结
  11. Anaconda的安装和环境使用
  12. Jupyter notebook文件默认存储路径以及更改方法
  13. HeadFirst 设计模式
  14. 微信的9个隐藏功能,我不允许还有人不知道!
  15. 如何在企业不同发展阶段开展绩效管理?
  16. https访问http接口处理
  17. NOIP 2018 游记
  18. BZOJ4864[BeiJing 2017 Wc]神秘物质——非旋转treap
  19. 小米Civi正式发布:售价2599元起,聚焦年轻女性用户
  20. 可以不学html直接学vue吗,一个只学过HTML,CSS,JS的前端初学者在学习Vue.js之前还需要学习哪些知识?...

热门文章

  1. void和void指针解析
  2. jQuery匹配各种条件的选择器用法
  3. 自动化运维之saltstack
  4. windows 下 nginx 的反向代理学习整理
  5. 《Greenplum5.0 最佳实践》 迁移数据使用Gptransfer
  6. 省市联动_简单的Demo,适用于各种二级菜单联动
  7. twitter服务器部署系统
  8. C++解析(3):布尔类型与三目运算符
  9. python之udp
  10. Linux下exec函数族比如execve等函数的基本使用