Spring 定时任务的几种实现
定时任务的几种实现
近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次
前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目
采用 框架,所以我都将结合
框架来介绍。
一.分类
从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):
自带的 类,这个类允许你调度一个
任务。使用这种方式可以让你的程序按照某一个频度执
行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。
使用 ,这是一个功能比较强大的的调度器,可以让你的程序在指定时间
执行,也可以按照某一个频度执行,配置起来稍显复杂,稍后会详细介绍。
以后自带的 ,可以将它看成一个轻量级的 ,而且使用
起来比 简单许多,稍后会介绍。
从作业类的继承方式来讲,可以分为两类:
作业类需要继承自特定的作业类基类,如 中需要继承自
;
中需要继承自 。
作业类即普通的 类,不需要继承自任何基类。
注!个人推荐使用第二种方式,因为这样所以的类都是普通类,不需要事先区别
对待。
"
从任务调度的触发时机来分,这里主要是针对作业使用的触发器,主要有以下
两种:
每隔指定时间则触发一次,在 中对应的触发器为:
每到指定时间则触发一次,在 中对应的调度器为:
#
注:并非每种任务都可以使用这两种触发器,如 任务就
只能使用第一种。 和 $ 都可以支持这两种触发条件。
"
二.用法说明
详细介绍每种任务调度工具的使用方式,包括 和 $ 两种。
第一种,作业类继承自特定的基类:
。
第一步:定义作业类
"
代码
$%&#&'$"
$%&%&'$"