【59】Quartz+Spring框架详解

Quartz是一个强大的作业调度系统,可独立运行或集成到其他软件中。通过Scheduler接口,我们可以创建、调度任务。Spring整合Quartz时,需要创建Job、配置JobDetail、Trigger和SchedulerFactoryBean。Quartz cron表达式支持灵活的定时规则,如星号、问号、逗号等特殊字符。使用Spring配置文件和相关类,可以便捷地设置定时任务。
摘要由CSDN通过智能技术生成

什么是Quartz

Quartz是一个作业调度系统(a job scheduling system),Quartz不但可以集成到其他的软件系统中,而且也可以独立运行的;在本文中“job scheduler”的意思是:一个负责在约定的时间到达时执行(或通知)其他软件控件的方法。

Quartz是非常灵活的,为了实现我们的需求Quartz包含了许多可以独立或被集成使用的典型范例,同时使我们编写项目中的代码也觉得很简单自然(natural)。

Quartz是很轻量级的,只需要简单的安装或配置就可以在项目中使用;如果只是相对简单的使用实际上可以直接地使用(out-of-the-box)。
Quartz具有容错性,能够持久化所调度的作业,即在系统重启后也可以继续执行原先未完成的作业。

虽然Quartz对给定的计划可以简单地运行一些系统的处理是很适用的,但只有当我们学习如何使用Quartz去驱动我们的应用业务处理流程时,才能真正的认识到Quartz的全部潜能。

什么是Quartz-从软件控件的角度

Quartz是以.jar文件的形式发布的,Quartz java库中包含了Quartz所有的核心功能,该功能的主要接口(API)是Scheduler接口,Scheduler接口提供了一些简单的操作,如:schedulering/unscheduling jobs,starting/stopping/pausing the scheduler。

如果我们要调度自定义的作业,该作业必须实现Job接口,Job接口包含了一个必须实现的方法:execute(…);如果我们需要实现当到达被调度的时间能够得到通知,我们必须实现TriggerListener或JobListener接口。

Quartz主要程序不但能够作为独立的应用(带有RMI 接口)运行,也可以作为J2EE组件资源在J2EE应用服务器运行。

使用Quartz

使用Scheduler前必须实例化Scheduler,需要由SchedulerFactory类来创建Scheduler,Factory的实例可以通过在JNDI存储中的Factory的序列化的方式来获取,实例化Factory后直接使用该实例也是很容易的,如下面的例子。

Scheduler被实例化后就可以启动、暂停或关闭,但是Scheduler一旦关闭就不能再次启动该Scheduler,只有必须再次实例化后才可以;Trigger只有与之对应的Scheduler启动后才能触发与之相关的Job,否则一直处于暂停状态。

在Java领域中,定时任务的开源工具也非常多,小到一个Timer类,大到Quartz框架。总体来说,还是Quartz,功能强大而且使用方便。

Spring整合Quartz实现定时任务步骤

创建任务(Job)、配置JobDetail、配置触发器(Trigger)、配置SchedulerFactoryBean

前期准备:

Maven创建一个web项目并引入Spring和quartz的依赖

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值