Quartz 任务调度是什么

Quartz 是 OpenSymphony 开源组织在 Job scheduling 领域又一个开源项目,它可以与 J2EE 与 J2SE 应用程序相结合也可以单独使用。Quartz 是一个完全由 Java 编写的开源作业调度框架。不要让作业调度这个术语吓着你。尽管Quartz框架整合了许多额外功能,但就其简易形式看,你会发现它易用得简直让人受不了!
其实,他还是没有解释明白,我简单说一下:Quartz 作业调度就是可以实现定时任务。它可以实现类似 Windows 的任务计划、我们 .Net 下的 Windows 服务实现的定时任务等,而且,它与 Spring 框架结合起来用起来简单到爆,爽的受不了,除了时间设置比较晦涩一点... 这不重要,待会儿告诉你解决方案。
现在有一个需求:用户在我们系统完成某个操作,我们用金币回馈用户,不过不是即时充值给用户,考虑性能问题,我们用异步或者我们打算在凌晨一点统一充值到用户账户,因为这个时间段用户比较少。你会怎么做?
一、新增一个GoldQuartz.java文件
当然你可以和我一样,新增一个cn.mayongfa.quartz Package 包,专门用来放执行定时任务的类。
这个类的目的是用来定时自动给用户加金币的。
@Component
public class GlodQuartz {
/**
* 用户自动加金币
* 每天凌晨一点执行一次
*/
@Scheduled(cron = "0 0 1 * * ? ")
public void addUserGold() {
System.out.println("凌晨一点了,你睡了么?");
}
/**
* 每隔5秒定时清理缓存
*/
@Scheduled(cron = "*/5 * * * * ? ")
public void cacheClear() {
System.out.println("时间又过去5秒了,真令人伤感...");
}
}
就完成了?嗯,是的,就这么简单。主要涉及到@Scheduled的cron是什么意思,下面会讲怎么写和怎么自动生成,因为现在这样你完全看不明白。
二、配置springMVC-servlet.xml文件
<!-- 扫描定时作业调度包 --> <task:annotation-driven /> <context:component-scan base-package="cn.mayongfa.quartz"/>
到这其实就这么简单就完成了!好用的受不了。配置这个<task:annotation-driven />有一个前提是你的 xml 文件的beans声明中要有:
xmlns:task="http://www.springframework.org/schema/task" xsi:schemaLocation=" http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"
配置完整版请点击 此处查看。
运行查看结果
到这里你就可以根据自己的需求去完成自己想要执行的定时任务了。那我就来仔细讲讲@Scheduled的cron是什么意思?
Cron 表达式包括以下 7 个字段:秒、分、小时、月内日期、月、周内日期、年(可选字段)。
Cron 触发器还利用一系列特殊字符:
你肯定要疯了,所有这些定义看起来可能有些吓人,我现在有一个方法让 cron 表达式变得十分简单。要不要听?
有些人为了方便大家快速写出 cron 表达式,他做了一个生成表达式的网站:http://tools./code/Quartz_Cron_create
你去这个网站,可以非常快速的生成一个合适你的 cron 表达式,快去试试吧。
总结一下
当你需要定时执行一些代码的时候,你就可以用到作业调度了,Quartz 就是为这个而生的,而且它和 Spring 结合起来非常方便。让你代码写的飞快,Quartz 还是前几天我们项目组一个同事告诉我的,我使用了一下,我就被他折服了。
上面的代码都可以访问此地址查看完整的项目示例: http://xiazai./201702/yuanma/SpringQuartzDemo_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# spring定时器quartz
# spring定时器任务
# 任务调度
# quartz
# java定时调度器(Quartz)使用实例
# Java中的定时任务调度Quartz举例详解
# 月内
# 排在
# 当月
# 放在
# 开源
# 有一个
# 受不了
# 它可以
# 充值
# 自己的
# 是一个
# 完成了
# 我就
# 就这么
# 让人
# 让你
# 你可以
# 第一个
# 你就
# 你会
相关文章:
如何通过二级域名建站提升品牌影响力?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
江苏网站制作公司有哪些,江苏书法考级官方网站?
再谈Python中的字符串与字符编码(推荐)
平台云上自主建站:模板化设计与智能工具打造高效网站
定制建站如何定义?其核心优势是什么?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
山东云建站价格为何差异显著?
建站主机选购指南与交易推荐:核心配置解析
如何用西部建站助手快速创建专业网站?
建站之星安装需要哪些步骤及注意事项?
建站主机系统SEO优化与智能配置核心关键词操作指南
如何用免费手机建站系统零基础打造专业网站?
建站主机选购指南:核心配置优化与品牌推荐方案
建站之星客服服务时间及联系方式如何?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
建站之星后台管理:高效配置与模板优化提升用户体验
制作销售网站教学视频,销售网站有哪些?
如何通过免费商城建站系统源码自定义网站主题与功能?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
如何用腾讯建站主机快速创建免费网站?
建站主机如何选?性能与价格怎样平衡?
如何用AWS免费套餐快速搭建高效网站?
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
免费网站制作appp,免费制作app哪个平台好?
开心动漫网站制作软件下载,十分开心动画为何停播?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
建站主机是否属于云主机类型?
南平网站制作公司,2025年南平市事业单位报名时间?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何在建站之星绑定自定义域名?
C++中引用和指针有什么区别?(代码说明)
Python路径拼接规范_跨平台处理说明【指导】
,怎么在广州志愿者网站注册?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
名字制作网站免费,所有小说网站的名字?
如何配置支付宝与微信支付功能?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
山东网站制作公司有哪些,山东大源集团官网?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
C#如何在一个XML文件中查找并替换文本内容
黑客入侵网站服务器的常见手法有哪些?
如何自定义建站之星模板颜色并下载新样式?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
c# 服务器GC和工作站GC的区别和设置
*请认真填写需求信息,我们会在24小时内与您取得联系。