专业期刊论文发表

文心期刊联盟

您现在的位置是:首页 > 科技期刊 > 科技论文

科技论文

Web应用与Quartz的整合研究

2024-08-27科技论文
随着信息技术的快速发展计算机软件在各行各业中都扮演者相当重要的角色发挥着促进企业快速发展的重要作用。在各行各业的管理系统中,都可能会存在着系统数据定时备份,定时处理

随着信息技术的快速发展计算机软件在各行各业中都扮演者相当重要的角色发挥着促进企业快速发展的重要作用。在各行各业的管理系统中,都可能会存在着系统数据定时备份,定时处理相对的业务功能、定时发送邮件或是在设定的特定时间间隔内自动执行某个系统特定功能的调度任务的需求。使用定时任务调度框架Quartz就能够的帮助企业快速高效的完成这种常规的或是复杂的调度作业的需求。

1 Quartz框架介绍

Quartz框架是一个具有强大的能够灵活配置调度规则或是调度时间的的免费开源的一个任务调度框架。使用Quartz框架可以为企业信息管理系统的定时调度任务进行简单快捷灵活的配置调度机制,实现企业常规和非常规的复杂的调度功能。开发人员可以根据业务的具体需求设置调度的时间点或是时间间隔,来进行具体的任务调度。Quartz框架能够与Spring很好的集成提供强大的可灵活配置的调度功能并应用到J2EE web应用的开发中,在企业应用调度开发中占有极其重要的地位,是目前使用最广泛的任务调度框架。

任务调度器(scheduler)、触发器(trigger)和任务(job)是任务调度框架Quartz的最重要的三大核心组件。其中调度任务的核心管理者是任务调度器(scheduler),调度任务的操作者是触发器(trigger),调度任务(job)是系统中相应的功能模块。开发人员可以根据具体的业务调度需求配置任务和触发器的监听规则,进行任务调度。

调度器(Scheduler)是Quartz 框架最主要的核心模块它对Quartz的应用运行的环境起到管理的作用,Quartz框架主要的API也是调度器(Scheduler)。对于Quartz开发人员来说,Scheduler是Quartz调度框架与开发人员发生交互的中间桥梁,大多数的交互过程都是以Scheduler为基础进行的。Scheduler通过与框架内的各个JobDetail和trigger结合来进行具体的调度工作的,而不是独立的完成具体的调度任务。JobDetial和trigger只需要在Scheduler上装配注册好,调度作业就会伴随着容器的启动自动执行。一个完整的Quartz调度任务,必须包含触发器(trigger),调度器(Scheduler)和任务(job)这三个最为重要的核心要素;触发器就是一个任务的驱动器,是负责对调度作业进行定时驱动的否则作业将无法正常执行。一个调度任务可以与多个触发器相对应,但是一个触发器只能对应一个任务对一个任务进行驱动。Quartz作为一个优秀的开源调度框架能够与Spring集成实现强大的调度作业而且对运行环境也没有依赖,Quartz还提供了强大的集群以及分布式能力,其强大的调度机制支持多样化的调度方法。

2 JDK Timer介绍

Timer为JDK自带的任务调度工具类。结构简单易用,功能也比较有限,而且容易出现误差。Timer和TimerTask是使用Timer实现任务调度的两个核心类。开发人员使用Timer实现任务调度的功能必须创建一个继承TimerTask的子类,而且重写run()方法,然后Timer再采用单线程的方式去执行调度任务。

Timer最大的优点就是简单易用,但是Timer采用的是单线程的执行方式同一时间只能有一个任务在执行,同一时间没有办法执行多个任务。当遇到更多更复杂的调度需求时,Timer难以满足需求的变化。

3  ScheduledExecutor介绍

ScheduledExecutor是在Timer的基础上扩展的一个任务调度框架。ScheduledExecutor中的每一个调度任务都会由线程池中对应的一个线程去执行任务。ScheduledExecutor与Timer比较ScheduledExecutor中执行的任务是可以并非执行的,且任务的执行之间是没有影响的。ScheduledExecutor是一个比Timer更为通用的一个任务调度的通用品,它允许同时存在多个服务线程,且只需要实现Runnable接口,不需要继承TimeTask。但是ScheduledExecutor跟Timer一样都不能胜任更加复杂的调度需求,只能供基于开始时间与重复间隔的任务调度。

Timer、ScheduledExecutor,跟Quartz比有一定的差距。相对于其他两个调度工具而已Quartz具有更加强大且灵活的配置规则,能够快捷的配置实现复杂的调度需求。如果你只需要特别简单的任务调度,那么Timer就可以满足需求。如果你的调度需求比较复杂,使用Quartz要比Timer、ScheduledExecutor简单。

4 Quartz整合Web的实现过程

整个整合过程主要可分为三步;第一步配置web.xml文件, web.xml文件在整个web应用中一个载体的角色,用来调度配置应用信息。第二步配置quartz.properties主要完成一些调度参数的设置。第三不编写调度任务的实现类,在实现类中实现业务的调度逻辑。以下就是整合过程的详细过程。

4.1 web.xml中配置Spring

配置spring、struts2用来初始化配置信息。


4.2配置quartz.properties

开发人员根据具体业务的调度需求在quartz.properties这个配置文件中配置自己业务需求的一些特定的参数,如相应的时间间隔或是时间点这类的调度信息。

Spring应用启动后就会按照配置好的信息启动调度任务,当然也可以单独整合集成quartz,并不一定要使用Spring。

4.3 编写目标类

目标类是整个调度任务的最关键的类,在这类里面开发人员实现自己的调度逻辑,这个类必须继承QuartzJobBean,在work方法里面实现调度逻辑。

本文介绍了JDK Timer、ScheduledExecutor、Quartz框架的功能、特点以及这三个工具的优缺点,以及如何将Quartz与Spring结合应用到Web开发中。建立了一个可以满足企业常规调度需求的简单可用的调度系统,而且具有良好的扩展性与灵活性。

文章评论

客服在线

服务时间

周一至周日 9:00-21:00