项目里使用到每月的第一天需要定时统计上一个月的某种数据,这个时候,我开始第一次知道任务调度这么一个专业词汇。也初次了解quartz这个任务调度框架。网上看了好几篇博文,有种quartz越看越难的感觉,直到看到注解版的。quartz是被spring很好支持的,再加上maven管理一下依赖,那就简直容易到简直..按照以下顺序,包你马上看到一个任务调度器的调度效果。

第一步:

  首先在applicationContext.xml文件添加一下内容  

   头部添加:http://www.springframework.org/schema/task
               http://www.springframework.org/schema/task/spring-task.xsd

内容添加:

<!-- 扫描定时作业调度包 -->

<task:annotation-driven/>
         <context:component-scan base-package="com.lanshankeji.teachertrainingsystem.controller.common"/>   ----包扫描路径是你调度器所在的包路径

           pom.xml文件添加以下依赖  

<!-- quratz -->
            <dependency>
      <groupId>org.quartz-scheduler</groupId>
      <artifactId>quartz</artifactId>
      <version>2.2.1</version>
    </dependency>

  我在com.lanshankeji.teachertrainingsystem.controller.common路径下创建了一个如何的类:

  @Component
  public class MonthlyClearingController {
    @Autowired
    private TeacherInfoService teacherInfoService;

    @Autowired
    private DiagnosisRecordService diagnosisRecordService;// 问诊记录

    @Autowired
    private TeacherAnswerAchievementMonthConfigService answerAchievementMonthConfigService;

    @Autowired
    private TeacherIncomeInfoService teachIncomeInfoService;

    /**
    * 每月一号零点定时统计教师上个月薪酬 并写入收入详细表 -- teacher_income_info
    */
    @Scheduled(cron = "0 32 15 7 11 ?")  添加了这个注解,spring会扫描它的
    public void insertTeacherIncomeInfos() {
      List<TeacherIncomeInfo> teacherIncomeInfos = getAllTeacherIncomeInfosOfLastMonth();
      teachIncomeInfoService.insert(teacherIncomeInfos);
    }

解析一下我的理解:   @Scheduled(cron = "0 32 15 7 11 ?")

@Scheduled这个注解会表示这是一个调度器,cron = "0 32 15 7 11 ?"是触发时间 就是11月7号15点32分0秒会执行insertTeacherIncomeInfos() 这个方法

启动tomcat,你会发现在上面那个触发时间点事件会被触发执行!

使用quart关键是四种类:

              Scheduler调度器
              Trigger触发器   Job任务   JobDetail任务详情

             按照官网的写法是以上类是分开书写,解耦灵活,可以搭建复杂多样的任务调度;本文所尝试使用的注解式开发,是把这几种类集合在一块了,但原理本质上是一样的。
希望以上文章可以帮助你快速看到调度效果,增加干下去的信息,哈哈。

quartz一次简单应用经历的更多相关文章

  1. Quartz 2D绘制简单图形

    在Quartz 2D中,绘图是通过图形上下文进行绘制的,以下绘制几个简单的图形 首先先创建一个QuartzView.swift文件继承自UIView,然后实现drawRect方法: import UI ...

  2. quartz定时任务的简单使用

    开发环境: springmvc quartz-2.2.3在官网下载的. 步骤: 1.首先在web.xml中加入以下代码: <servlet> <servlet-name>Qua ...

  3. Quartz入门及简单实现

    Quartz简介 Quartz是一个功能丰富的开源作业调度库,可以集成到几乎任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统.Quartz可以用来创建执行数十,数百乃至数万个作业的 ...

  4. SpringBoot整合Quartz定时任务 的简单实例 2

    (1)什么是Quartz?(2)Quartz的特点:(3)Quartz专用词汇说明:(4)Quartz任务调度基本实现原理: 接下来看下具体的内容: (1)什么是Quartz? Quartz是一个完全 ...

  5. 热词统计以及Quartz.net的简单使用

    一.热词统计 方案一: 设计一个表:ID       KeyWord     Count 当用户再输入框中查询的时候,我们就往表中插入数据,在插入之前首先判断是否已经存在keyword,存在的话,让C ...

  6. c# Quartz.net的简单封装

    分享一个以前封装的Quartz.net类. 新建一个QuartzClass类库项目.nuget控制台输入 image.png 添加Quartz.net的引用. 我们新建一个JobBase.cs文件,里 ...

  7. 企业级任务调度框架Quartz(3) 一个简单的Quartz 例子

    1. 一个简单的Quartz 工程     本示例应用比起众所周知的 System.out.println("Hello world from Quartz") 来还是要有趣些.当 ...

  8. Quartz.net 的简单使用,创建定时任务

    ISchedulerFactory sf = new StdSchedulerFactory(); sched = sf.GetScheduler(); JobDetail job = new Job ...

  9. spring 整合quartz的方式——简单介绍

    一.继承QuartzJobBean,重写executeInternal方法 <bean name="statQuartzJob" class="org.spring ...

随机推荐

  1. 聚类-31省市居民家庭消费水平-city

    ===分三类的===== ======分四类的======== 直接写文件名,那么你的那个txt文件应该是和py文件在同一个路径的 ============code=========== import ...

  2. easyui-textbox多行文本中输入内容,有回车操作时将文本拼接<br/>

    <input class="easyui-textbox" name="versionText" id="versionText" d ...

  3. CentOS6.3上安装与配置nginx+php+mysql环境

    1. 目前nginx采用是源码包安装的方式(yum安装失败),下载地址:http://nginx.org/en/download.html 我这里的安装包是:nginx-1.12.0.tar.gz 2 ...

  4. C++读取与保持图片

    #include<iostream> using namespace std; void main(void) { //保存输入图像文件名和输出图像文件名 ]; ]; //图像数据长度 i ...

  5. springMVC设计模式和javaWeb三层框架

    一.springMVC  设计模式 MVC模式是软件工程中的一种能够软件架构模式,把软件分为三个基本部分,模型(model).视图(view)和控制器(controller).使程序简化,更加直观. ...

  6. linux 安装 kafka&zookeeper

    安装kafka 1,下载kafka. #cd /usr/local #wget wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.1.1 ...

  7. TZOJ 2519 Regetni(N个点求三角形面积为整数总数)

    描述 Background Hello Earthling. We're from the planet Regetni and need your help to make lots of mone ...

  8. Hillstone防火墙sslvpn配置与使用

    1.山石的sslvpn称为Secure Connect VPN,即scvpn. 2.WEB界面登陆防火墙,“用户”,“AAA服务器”,新建用户: 3.定义源IP池 即用户通过sslvpn拨号成功后获取 ...

  9. easyUI添加修改tab页(toolbar)

    代码: <div id="editdialos" class="easyui-dialog" title="虚机配置修改" data- ...

  10. 20164319 刘蕴哲 Exp2 后门原理与实践

    [后门概念] 后门就是不经过正常认证流程而访问系统的通道. 特指潜伏于操作系统中专门做后门的一个程序,而“坏人”可以连接这个程序远程执行各种指令. (概念和木马有重叠) [学习内容] 使用nc实现wi ...