Spring Boot Quartz
主要内容
- Spring Scheduler 框架
- Quartz 框架,功能强大,配置灵活
- Quartz 集群
- mysql 持久化定时任务脚本(tables_mysql.sql)
介绍
在工程中时常会遇到一些需求,例如定时刷新一下配置、隔一段时间检查下网络状态并发送邮件等诸如此类的定时任务。
定时任务本质就是一个异步的线程,线程可以查询或修改并执行一系列的操作。由于本质是线程,在 Java 中可以自行编写一个线程池对定时任务进行控制,但这样效率太低了,且功能有限,属于重复造轮子。
分布式任务调度应用场景
Quartz的集群功能通过故障转移和负载平衡功能为您的调度程序带来高可用性和可扩展性。
调度程序中会有很多定时任务需要执行,一台服务器已经不能满足使用,需要解决定时任务单机单点故障问题。
用Quartz框架,在集群环境下,通过数据库锁机制来实现定时任务的执行;独立的 Quartz 节点并不与另一其的节点或是管理节点通信。
Spring Scheduler 实现定时任务
1.定义 Task 类
2.启动定时任务
在Spring Boot的主类中加入@EnableSche