定时任务的几种实现

定时任务的几种实现

一.分类

从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):
Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。
使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂,稍后会详细介绍。
Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多,稍后会介绍。
从作业类的继承方式来讲,可以分为两类:
作业类需要继承自特定的作业类基类,如Quartz中需要继承自org.springframework.scheduling.quartz.QuartzJobBean;java.util.Timer中需要继承自java.util.TimerTask。
作业类即普通的java类,不需要继承自任何基类。
注:个人推荐使用第二种方式,因为这样所以的类都是普通类,不需要事先区别对待。
从任务调度的触发时机来分,这里主要是针对作业使用的触发器,主要有以下两种:
每隔指定时间则触发一次,在Quartz中对应的触发器为:org.springframework.scheduling.quartz.SimpleTriggerBean
每到指定时间则触发一次,在Quartz中对应的调度器为:org.springframework.scheduling.quartz.CronTriggerBean
注:并非每种任务都可以使用这两种触发器,如java.util.TimerTask任务就只能使用第一种。Quartz和spring task都可以支持这两种触发条件。

二.用法说明

详细介绍每种任务调度工具的使用方式,包括Quartz和spring task两种。


 上一篇
多级iframe下layer 多级iframe下layer
多级iframe下layer.open到顶级页面多级iframe布局下的页面layer.open默认会在当前页面open,需要open到顶级页面可以在layer.open前面添加parent或top。如: 父页面打开窗口var openl;
2019-08-19
下一篇 
实体bean和xml转换 实体bean和xml转换
实体bean和xml转换package com.util; import com.thoughtworks.xstream.XStream; import java.io.FileInputStream; import java.io.
2019-08-19
  目录