Java中Spring使用Quartz任务调度定时器

时间:2021-05-20

Quartz 任务调度是什么

Quartz 是 OpenSymphony 开源组织在 Job scheduling 领域又一个开源项目,它可以与 J2EE 与 J2SE 应用程序相结合也可以单独使用。Quartz 是一个完全由 Java 编写的开源作业调度框架。不要让作业调度这个术语吓着你。尽管Quartz框架整合了许多额外功能,但就其简易形式看,你会发现它易用得简直让人受不了!

其实,他还是没有解释明白,我简单说一下:Quartz 作业调度就是可以实现定时任务。它可以实现类似 Windows 的任务计划、我们 .Net 下的 Windows 服务实现的定时任务等,而且,它与 Spring 框架结合起来用起来简单到爆,爽的受不了,除了时间设置比较晦涩一点... 这不重要,待会儿告诉你解决方案。

现在有一个需求:用户在我们系统完成某个操作,我们用金币回馈用户,不过不是即时充值给用户,考虑性能问题,我们用异步或者我们打算在凌晨一点统一充值到用户账户,因为这个时间段用户比较少。你会怎么做?

一、新增一个GoldQuartz.java文件

当然你可以和我一样,新增一个cn.mayongfa.quartz Package 包,专门用来放执行定时任务的类。

这个类的目的是用来定时自动给用户加金币的。

@Componentpublic 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:///201702/yuanma/SpringQuartzDemo_jb51.rar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章