Quartz任务调度框架


前言

最近跟的一个系统需要实时监控主机的应用进程以及存储空间等,实时生成告警提醒,这就需要在规定的时间去触发消息提醒功能,在这里主要也是用到了Quartz来调度任务的。


一、介绍

Quartz作为 Spring 默认的调度框架,与 Spring 集成实现灵活可配置的调度功能,此外其支持多种调度方法,应用方式灵活,并具有分布式和集群能力。
应用场景:

  • 驱动流程:比如在确定时间后根据任务完成情况触发一个警告并通知
  • 系统维护:在具体时间点调度一个数据从数据库转到xml文件中
  • 在应用中提供消息提醒服务

二、使用步骤

1.创建maven工程,添加依赖

下载quartz的jar包,导入依赖

<dependency>
	<groupId>org.quartz-scheduler</groupId>
	<artifactId>quartz</artifactId>
	<version>2.3.2</version>
</dependency>

2.创建任务

(1)创建一个类实现quartz提供的Job接口
(2)实现Job接口定义的execute方法,定义任务逻辑

代码如下(示例):

public class MyJob implements Job {
   
	private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
	public void execute(JobExecutionContext jobExecutionContext)
	throws JobExecutionException {
   
		//执行任务的逻辑
		String time = sdf.format(new Date());
		System.out.println("~~~~~"+time);
	}
}

3.启动任务

使用任务调度器Scheduler进行任务管理

  • 启动任务
  • 暂停任务
  • 继续任务
  • 停止任务
package com.qfedu.job;
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.util.Date;
public class QuartzTest {
   
	public static void main(String[] args) {
   
	    try {
   
			//1.创建Quartz的任务调度器
			Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
			//2.创建触发器:定义了任务调度的时机(延时、循环、定时...)
			// simpleScheduleBuilder对象表示任务的触发规则
			SimpleScheduleBuilder simpleScheduleBuilder =
			SimpleScheduleBuilder.simpleSchedule()
			.withIntervalInSeconds(3)
			.withRepeatCount(10);
			SimpleTrigger trigger = TriggerBuilder.newTrigger()
			.withIdentity
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值