Spring中的Quartz配置 Spring 定时器 java定时器

QuartzJob.java

本程序是放在web 项目中,启动加载后。5份钟自动调用一次

[java] view plaincopyprint?

  1. public class  {
  2. public void work() {
  3. System.out.println("Quartz的任务调度!!!");
  4. Calendar cal=Calendar.getInstance();
  5. System.out.println(cal.getTime());
  6. }
  7. }

Spring 配置文件

[html] view plaincopyprint?

  1. <!--定时发送 -->
  2. <!-- 要调用的工作类 -->
  3. <bean id="quartzMsg" class="com.ppzhao.QuartzJob"></bean>
  4. <!-- 定义调用对象和调用对象的方法 -->
  5. <bean id="msgjobtask"
  6. class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  7. <!-- 调用的类 -->
  8. <property name="targetObject">
  9. <ref bean="quartzMsg" />
  10. </property>
  11. <!-- 调用类中的方法 -->
  12. <property name="targetMethod">
  13. <value>work</value>
  14. </property>
  15. </bean>
  16. <!-- 定义触发时间 -->
  17. <bean id="msgdoTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
  18. <property name="jobDetail">
  19. <ref bean="msgjobtask" />
  20. </property>
  21. <!-- cron表达式 -->
  22. <property name="cronExpression">
  23. <value>0 0/5 * * * ?</value>
  24. </property>
  25. </bean>

[html] view plaincopyprint?

  1. <!-- 总管理类 如果将lazy-init=‘false‘那么容器启动就会执行调度程序 -->
  2. <bean id="startQuertz" lazy-init="false" autowire="no"
  3. class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  4. <property name="triggers">
  5. <list>
  6. <ref bean="msgdoTime"/>
  7. </list>
  8. </property>
  9. </bean>

关于cron表达式(来自网络):

Cron 表达式包括以下 7 个字段:

小时

月内日期

周内日期

年(可选字段)

特殊字符

Cron 触发器利用一系列特殊字符,如下所示:

反斜线(/)字符表示增量值。例如,在秒字段中“5/15”代表从第 5 秒开始,每 15 秒一次。

问号(?)字符和字母 L 字符只有在月内日期和周内日期字段中可用。问号表示这个字段不包含具体值。所以,如果指定月内日期,可以在周内日期字段中插入“?”,表示周内日期值无关 紧要。字母 L 字符是 last 的缩写。放在月内日期字段中,表示安排在当月最后一天执行。在周内日期字段中,如果“L”单独存在,就等于“7”,否则代表当月内周内日期的最后一个实 例。所以“0L”表示安排在当月的最后一个星期日执行。

在月内日期字段中的字母(W)字符把执行安排在最靠近指定值的工作日。把“1W”放在月内日期字段中,表示把执行安排在当月的第一个工作日内。

井号(#)字符为给定月份指定具体的工作日实例。把“MON#2”放在周内日期字段中,表示把任务安排在当月的第二个星期一。

星号(*)字符是通配字符,表示该字段可以接受任何可能的值。

字段 允许值 允许的特殊字符

秒 0-59 , - * /

分 0-59 , - * /

小时 0-23 , - * /

日期 1-31 , - * ? / L W C

月份 1-12 或者 JAN-DEC , - * /

星期 1-7 或者 SUN-SAT , - * ? / L C #

年(可选) 留空, 1970-2099 , - * /

表达式意义

"0 0 12 * * ?" 每天中午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期间的每1分钟触发

"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发

"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发

"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发

"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发

"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发

"0 15 10 15 * ?" 每月15日上午10:15触发

"0 15 10 L * ?" 每月最后一日的上午10:15触发

"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发

"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发

每天早上6点

0 6 * * *

每两个小时

0 */2 * * *

晚上11点到早上8点之间每两个小时,早上八点

0 23-7/2,8 * * *

每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * 1-3

1月1日早上4点

0 4 1 1 *

时间: 2024-10-14 23:51:57

Spring中的Quartz配置 Spring 定时器 java定时器的相关文章

spring 中集成quartz定时器及quartz中cronExpression配置说明

 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:/

Spring中使用Quartz之MethodInvokingJobDetailFactoryBean配置任务

Quartz是一个强大的企业级任务调度框架,Spring中继承并简化了Quartz. Spring中使用Quartz的3种方法(MethodInvokingJobDetailFactoryBean,implements Job,extends QuartzJobBean): 以下为在Spring中怎样配置Quartz: 首先写一个被调度的类: package com.test.quartz; public class QuartzJob { public void work() { System

Spring 中使用Quartz实现任务调度

前言:Spring中使用Quartz 有两种方式,一种是继承特定的基类:org.springframework.scheduling.quartz.QuartzJobBean,另一种则不需要,(推荐使用第二种).下面分别介绍. 1.作业类继承 org.springframework.scheduling.quartz.QuartzJobBean 第一步:定义作业类 java代码 1 import java.text.SimpleDateFormat; 2 import java.util.Dat

深入探索spring技术内幕(七): 配置Spring AOP面向切面编程

一. AOP一些概念 Aspect( 切面 ): 指横切性关注点的抽象即为切面, 它与类相似, 只是两者的关注点不一样, 类是对物体特征的抽象, 而切面横切性关注点的抽象. joinpoint( 连接点 ): 指那些被拦截到的点. 在spring中, 这些点指的是方法, 因为spring只支持方法类型的连接点, 实际上joinpoint还可以是field或类构造器) Pointcut( 切入点 ): 指我们要对那些joinpoint进行拦截的定义. Advice( 通知 ): 指拦截到joinp

java中JOB介绍与Spring中JOB的配置

2013-09-05 15:30:54| 分类: 默认分类 |举报|字号 订阅1定时器的作用 在实际的开发中,如果项目中需要定时执行或者需要重复执行一定的工作,定时器显现的尤为重要. 当然如果我们不了解定时器就会用线程去实现,例如: package org.lzstone.action public class FinanceAction extends Thread{ private Date date; public void run{ try{ while(true){ Thread.sl

(4) Spring中定时任务Quartz集群配置学习

原 来配置的Quartz是通过spring配置文件生效的,发现在非集群式的服务器上运行良好,但是将工程部署到水平集群服务器上去后改定时功能不能正常运 行,没有任何错误日志,于是从jar包.JDK版本.cronExpression到服务器类型,甚至查到了服务器操作系统的类型,都没能找到解决的办 法,后来才知道是集群惹的祸! 详细步骤如下: 1. 按照Quartz集群工作原理 图:表示了每个节点直接与数据库通信,若离开数据库将对其他节点一无所知 在数据库中建表.建表模版在Quartz包下docs/d

Quartz 在 Spring 中如何动态配置时间--转

原文地址:http://www.iteye.com/topic/399980 在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度. 有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间,非常easy.比如:每天凌晨几点定时运行一个程序,这只要在工程中的spring配置文件中配置好spring整合quartz的几个属性就好. Spring配置文件 引用 <bean id="jobDetail&quo

《Java从入门到放弃》入门篇:spring中AOP的配置方式

spring中最核心的两个东东,一个IOC,一个AOP. AOP(Aspect-OrientedProgramming)面向方面编程,也可以叫面向切面编程. 从一个新人的角度可以这样来理解:一般软件中的功能,我们可以分为两大类,一类是业务功能,一类是系统功能. 业务功能是指这个软件必须要用到的,没有的话客户就不给钱的.比如淘宝APP,如果你只能在上面浏览商品而不能购物,那就说明业务功能太监了···. 系统功能主要是指与业务无关,没有这块内容也不影响软件使用的.比如日志管理.权限处理等. AOP主

Spring 中使用XML配置方式和使用注解方式实现DI

Spring容器给我们提供了很好的环境,我们只关注主要业务即可,其他的无需关注太多.今天刚学的DI DI(Dependency Injection):依赖注入 使用XML配置文件完成依赖注入 1.1普通属性的注入 创建实体类: package cn.spring.entity; import java.io.Serializable; /** * Created by accp on 2017/3/23. */ public class User implements Serializable