这里主要记录一下定时任务的配置,偏向于记录型的一个教程,这里不阐述Quartz的原理。

  首先,在Spring配置文件里配置一个自己写好的一个包含执行任务方法的一个类。

  1. <bean id="testQuartzClass" class="com.xxx.test.schedule.testTaskClass" />

  然后用Spring自带的任务工厂类org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean新建一个任务,并且将刚才配置任务类配置进去

  1. <bean id="testJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  2. <property name="targetObject" ref="testQuartzClass" />
  3. <property name="targetMethod" value="execute" />
  4. </bean>

  主要是配置一个目标类和目标类里面的目标方法,然后这个任务开始的时候就会自动去执行targetObject里面的targetMethod方法;

  接下来再配置一个cronTrigger,里面会设置一个时间表达式和一个任务:

  1. <bean id="cronTriggerTest" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
  2. <property name="jobDetail" ref="testJob" />
  3. <property name="cronExpression" value="00 00 15 * * ?" />
  4. </bean>

  一个JobDetail和一个CronTrigger合在一起才能算是一个定时任务,我这里设置的是每天下午三点触发,CronTrigger时间表达式规则可以参考这篇文章:  http://www.cnblogs.com/xuange306/p/6250740.html

  最后配置一个调度器,配置调度器的时候需要一个线程池,把线程池和刚才配置的cronTrigger配置到调度器里去,就大功搞成了

  1. <bean id="quartzTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
  2. <property name="corePoolSize" value="10"/>
  3. <property name="maxPoolSize" value="100"/>
  4. <property name="queueCapacity" value="500" />
  5. </bean>
  1. <bean id="quartzScheduler" lazy-init="false" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  2. <property name="autoStartup" value="true"/>
  3. <property name="triggers">
  4. <list>
  5. <ref bean="cronTriggerTest" />
  6. </list>
  7. </property>
  8. <property name="taskExecutor" ref="quartzTaskExecutor" />
  9. </bean>

  值得一提的是,如果不用Spring配置,直接用Quartz,执行的任务类需要实现org.quartz.Job接口并实现excute方法,然后JobDetail会自动执行excute方法,跟Spring指定目标类的目标方法有些不同。

Spring Quartz定时任务设置的更多相关文章

  1. Spring quartz定时任务service注入问题

    今天想单元测试一下spring中的quartz定时任务,job类的大致结构和下面的SpringQtz1类相似,我的是实现的org.quartz.Job接口,到最后总是发现job类里注入的service ...

  2. [Spring] - Quartz定时任务 - Annotation

    Spring + Quartz可以使用annoation方式: 1.AppJob类: package com.my.quartz.testquartz1; import org.springframe ...

  3. Spring+Quartz(定时任务)

    此处用到的Quartz版本是quartz-2.2.3 官方网站:http://www.opensymphony.com/quartz 首先先介绍用到的几个关键类:scheduler任务调度.Job任务 ...

  4. Java Spring Quartz 定时任务

    公司需要使用JAVA的WebServer完成简单的定时跑任务的工作.其他例如:每隔30分钟执行锁定用户解锁任务. Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时 ...

  5. spring quartz定时任务

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

  6. 一看便知spring+quartz定时任务

    这是我经过网上收集然后加上自己的测试写的,以便大家使用 标配:已测 注意需要的包:(在已经配置spring 的情况下) quartz-all-1.6.jar        spring-context ...

  7. spring + Quartz定时任务配置

    <bean id="exportBatchFileTask" class="com.ydcn.pts.task.ExportBatchFileTask"& ...

  8. spring + quartz定时任务,以及修改定时任务

    spring4+quartz2.2.3,定时任务弄好了,修改定时任务没折腾起,没找到合适的解决方案. 最终使用库spring-context-support 3.2.17.RELEASE +  qua ...

  9. Quartz 定时任务设置某个时间区间每隔一定时间触发的cron表达式

    原文:https://blog.csdn.net/yansong_8686/article/details/46991189 Cron表达式 Quartz使用类似于Linux下的Cron表达式定义时间 ...

随机推荐

  1. 机器学习之scikit-learn库

    前面讲到了,这个库适合学习,轻量级,所以先学它. 安装就不讲了,简单.不过得先安装numpy和pandas库才能安装scikit-learn库. 如果安装了anaconda得话,会自带有这个库. -- ...

  2. vue实现tab选项卡切换效果

    tab选项卡切换效果: 通过点击事件传入参数,然后通过v-show来进行切换显示 <template> <div class="box"> <div ...

  3. 实现 call、apply、bind

    实现 call.apply.bind 在之前一篇文章写了这三个参数的区别,但是其实面试更常考察如何实现.其实所有的原生函数的 polyfill 如何实现,只需要考虑 4 点即可: 基本功能 原型 th ...

  4. Java开发者入职必备条件

    01.基础技术体系 我认为知识技能体系化是判断技术是否过关的第一步.知识体系化包含两层含义: 1. 能够知道技术知识图谱(高清版图谱扫文末二维码)的内容 比如分布式系统中常用的RPC技术,其背后就涉及 ...

  5. 在VMware通过挂载系统光盘搭建本地yum仓库

    1.首先需要有一个VMware虚拟机: 2.进去虚拟机(这里用Linux下deCentOS进行演示): 3.用root账号进行登录,否则在根目录下没有一些操作权限: 4.打开终端: 5,输入命令“cd ...

  6. 管道 |、|&、tee

    用“|”或“|&”隔开两个命令之间形成一个管道,左边命令的标准输出(|)或者标准错误输出(|&)信息流入到右边命令的标准输入,即左边命令的标准输出作为右边命令的标准输入.如: make ...

  7. 借汇编之力窥探String背后的数据结构奥秘

    熟悉C++.java.VB等编程语言的朋友都知道String(字符串),它是编程语言中表示文本的数据类型,字符串由若干字符组成的,是所有编程语⾔中⾮常重要的成员.可能很多朋友平时只是使用它,没有仔细研 ...

  8. scikit-learn_cookbook1: 高性能机器学习-NumPy

    源码下载 在本章主要内容: NumPy基础知识 加载iris数据集 查看iris数据集 用pandas查看iris数据集 用NumPy和matplotlib绘图 最小机器学习配方 - SVM分类 介绍 ...

  9. Protues7.8仿真软件有中文路径无法正常运行怎么办?

    Protues7.8是一款功能强大的单片机仿真软件,在我们的学习生活中经常会用的到,在装软件时明明已经装好了,却不能报错跳出两行红字,让人心痛. 一般都是因为账户名字是中文的问题,这个软件对中文不兼容 ...

  10. 一文彻底搞懂CAS实现原理 & 深入到CPU指令

    本文导读: 前言 如何保障线程安全 CAS原理剖析 CPU如何保证原子操作 解密CAS底层指令 小结 朋友,文章优先发布公众号,如果你愿意,可否扫文末二维码关注下? 前言 日常编码过程中,基本不会直接 ...