quartz一次简单应用经历
项目里使用到每月的第一天需要定时统计上一个月的某种数据,这个时候,我开始第一次知道任务调度这么一个专业词汇。也初次了解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一次简单应用经历的更多相关文章
- Quartz 2D绘制简单图形
在Quartz 2D中,绘图是通过图形上下文进行绘制的,以下绘制几个简单的图形 首先先创建一个QuartzView.swift文件继承自UIView,然后实现drawRect方法: import UI ...
- quartz定时任务的简单使用
开发环境: springmvc quartz-2.2.3在官网下载的. 步骤: 1.首先在web.xml中加入以下代码: <servlet> <servlet-name>Qua ...
- Quartz入门及简单实现
Quartz简介 Quartz是一个功能丰富的开源作业调度库,可以集成到几乎任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统.Quartz可以用来创建执行数十,数百乃至数万个作业的 ...
- SpringBoot整合Quartz定时任务 的简单实例 2
(1)什么是Quartz?(2)Quartz的特点:(3)Quartz专用词汇说明:(4)Quartz任务调度基本实现原理: 接下来看下具体的内容: (1)什么是Quartz? Quartz是一个完全 ...
- 热词统计以及Quartz.net的简单使用
一.热词统计 方案一: 设计一个表:ID KeyWord Count 当用户再输入框中查询的时候,我们就往表中插入数据,在插入之前首先判断是否已经存在keyword,存在的话,让C ...
- c# Quartz.net的简单封装
分享一个以前封装的Quartz.net类. 新建一个QuartzClass类库项目.nuget控制台输入 image.png 添加Quartz.net的引用. 我们新建一个JobBase.cs文件,里 ...
- 企业级任务调度框架Quartz(3) 一个简单的Quartz 例子
1. 一个简单的Quartz 工程 本示例应用比起众所周知的 System.out.println("Hello world from Quartz") 来还是要有趣些.当 ...
- Quartz.net 的简单使用,创建定时任务
ISchedulerFactory sf = new StdSchedulerFactory(); sched = sf.GetScheduler(); JobDetail job = new Job ...
- spring 整合quartz的方式——简单介绍
一.继承QuartzJobBean,重写executeInternal方法 <bean name="statQuartzJob" class="org.spring ...
随机推荐
- 变量 range while for input
1.程序 =数据结构+算法 1.1.数字计算机的编码指令的次序 1.4.程序(program)是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合.为实现预期目的而进行操作的一系列语句和指 ...
- FI-盘盈盘亏借贷科目
资产的盘盈盘亏一般分两步:第一步,批准前调整为账实相符:第二步,批准后结转处理.库存现金.存货.固定资产.工程物资的盘盈盘亏的账务处理见下图: 以上科目中可能并不完整,比如“原材料等科目”就可能包括“ ...
- 移动端ios下H5的:active样式失效的解决方法
在body上绑定一个touchstart事件,空函数就行: document.body.addEventListener('touchstart', function(){}, false) 或者在b ...
- echarts 技巧自己的一些记录
1.不要输出 window["echarts"].init(chart) ,会卡死. let chart = document.getElementById("chart ...
- 如何使用tensorboard查看tensorflow graph****.pb文件的模型结构
参考网上的:https://github.com/tensorflow/tensorflow/issues/8854 import tensorflow as tf from tensorflow.p ...
- php 安装最新的redis连接扩展
用于与redis连接的Php扩展[RC表示公测,我们用的是不带RC的稳定版本]下载包地址:http://pecl.php.net/package/redis 最新稳定版本:4.3.0 下载包:# wg ...
- [Solution] 969. Pancake Sorting
Difficulty: Medium Problem Given an array A, we can perform a pancake flip: We choose some positive ...
- 2019 年 React 学习路线图(转)
转自:https://www.infoq.cn/article/AEkiVAiJf25LZmoUe_yc 之前我们已经介绍了2019 年 Vue 学习路线图,而 React 作为当前应用最广泛的前端框 ...
- composer的安装以及具体使用
1. 简介 Composer 是 PHP5.3以上 的一个依赖管理工具.它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们.Composer 不是一个包管理器.是的,它涉及 "pa ...
- java关于get/post请求
package com.study.test; import java.io.BufferedReader;import java.io.IOException;import java.io.Inpu ...