当前位置: 首页 > news >正文

SpringMVC(六):Spring 整合quartz作业调度框架

2019独角兽企业重金招聘Python工程师标准>>> hot3.png


1、业务类(IndexUtils.java)

public class IndexUtils {
  
    public void createIndex(){
        System.out.println("------this is createIndex--------" + System.currentTimeMillis());
    }
}


2、Spring的xml配置

2.1、业务类的配置

<!-- 定义调度的业务对象 -->
<bean id="createIndex" class="whu.edu.irlab.utils.index.IndexUtils"/>


2.2、jobDetails配置

<!-- 增加调度业务逻辑,指定工作的具体类 -->
<bean id="CreateIndexJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  <property name="targetObject" ref="createIndex" />
  <property name="targetMethod" value="createIndex" />
  <property name="concurrent" value="false" /> <!-- 将并发设置为false -->
</bean>


2.3、Trigger的配置

(1) CronTriggerBean

<!--增加调度触发器,设置触发任务时间 -->
<bean id="timeTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
  <property name="jobDetail">
    <ref bean="CreateIndexJob" />
  </property>

  <property name="cronExpression">
    <!--每天凌晨2点执行任务 -->
    <value>0 0 02 * * ?</value>
  </property>
</bean>

Cron表达式的格式:秒 分 时 日 月 周 年(可选)

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

               秒                         0-59                               , - * /  

               分                         0-59                               , - * /  

               小时                   0-23                               , - * /  

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

               月                         1-12 or JAN-DEC          , - * /  

               周几                     1-7 or SUN-SAT            , - * ? / L C #  

               年 (可选字段)     empty, 1970-2099      , - * /

               “?”字符:表示不确定的值

               “,”字符:指定数个值

               “-”字符:指定一个值的范围

               “/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m

               “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X

               “W”字符:指定离给定日期最近的工作日(周一到周五)

               “#”字符:表示该月第几个周X。6#3表示该月第3个周五

(2) SimpleTriggerBean

延迟10s启动,每隔60s执行一次

<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
 <property name="jobDetail" ref="CreateIndexJob" />
 <property name="startDelay" value="10000" />
 <property name="repeatInterval" value="60000" />
</bean>


2.4、Scheduler的配置

<!-- 设置调度,定制任务 -->
<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  <property name="triggers">
    <list>
      <!-- 设置多个触发器 -->
      <ref bean="timeTrigger" />
    </list>
  </property>
  <!--<property name="configLocation" value="classpath:quartz.properties" />-->
</bean>


3、Maven依赖

<!-- 利用quartz进行调度控制 -->
<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz</artifactId>
  <version>2.2.2</version>
</dependency>


转载于:https://my.oschina.net/u/1020238/blog/523735

相关文章:

  • ecshop中那些有意思的代码
  • 查看死锁原因 /data/anr/traces.txt
  • 如何删除 SQL Server 表中的重复行
  • Android 不通过USB数据线调试的方法
  • Android网络开发之OkHttp--基本用法GET
  • 查看Android应用包名package和入口activity名称
  • ueditor 最新版本【1.4.3.1】单独文件/图片上传处理方法
  • 【原创】sizeof运算符总结
  • Android客户端性能测试常见指标及测试方法--转载
  • composer 报错笔记
  • ubuntu集群下ssh配置总结
  • 使用css3属性,大部分浏览器要识别前缀
  • 暴搜 - Codeforces Round #327 (Div. 2) E. Three States
  • iOS中正确的截屏姿势
  • Android Volley框架的使用(三)
  • [数据结构]链表的实现在PHP中
  • 「译」Node.js Streams 基础
  • Js基础知识(四) - js运行原理与机制
  • Laravel Telescope:优雅的应用调试工具
  • node-glob通配符
  • spring-boot List转Page
  • V4L2视频输入框架概述
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • Zsh 开发指南(第十四篇 文件读写)
  • 给新手的新浪微博 SDK 集成教程【一】
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 手写一个CommonJS打包工具(一)
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 主流的CSS水平和垂直居中技术大全
  • 《码出高效》学习笔记与书中错误记录
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ###项目技术发展史
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #pragma预处理命令
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (03)光刻——半导体电路的绘制
  • (6)STL算法之转换
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (JS基础)String 类型
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (七)c52学习之旅-中断
  • (强烈推荐)移动端音视频从零到上手(上)
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (新)网络工程师考点串讲与真题详解
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • .NET Framework .NET Core与 .NET 的区别