如何实现一个春天定时任务

  介绍

今天就跟大家聊聊有关如何实现一个春天定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):

<李>

Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。

<李>

使用石英、这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂,稍后会详细介绍。

<李>

Spring3.0以后自带的任务,可以将它看成一个轻量级的石英,而且使用起来比石英简单许多,稍后会介绍。

从作业类的继承方式来讲,可以分为两类:

<李>

作业类需要继承自特定的作业类基类,如石英中需要继承自org.springframework.scheduling.quartz.QuartzJobBean; java.util.Timer中需要继承自java.util。李TimerTask .

<李>

作业类即普通的java类,不需要继承自任何基类。

注:个人推荐使用第二种方式,因为这样所以的类都是普通类,不需要事先区别对待。

从任务调度的触发时机来分,这里主要是针对作业使用的触发器,主要有以下两种:

<李>

每隔指定时间则触发一次,在石英中对应的触发器为:org.springframework.scheduling.quartz.SimpleTriggerBean

<李>

每到指定时间则触发一次,在石英中对应的调度器为:org.springframework.scheduling.quartz.CronTriggerBean

注:并非每种任务都可以使用这两种触发器,如java.util。TimerTask任务就只能使用第一种.Quartz春天和任务都可以支持这两种触发条件。

二。用法说明

详细介绍每种任务调度工具的使用方式,包括石英弹簧和任务两种。

石英

第一种,作业类继承自特定的基类:org.springframework.scheduling.quartz.QuartzJobBean。

第一步:定义作业类

Java代码

 import  org.quartz.JobExecutionContext;,,
  import  org.quartz.JobExecutionException;,,
  import  org.springframework.scheduling.quartz.QuartzJobBean;,,
  publicclass  Job1  extends  QuartzJobBean  {,,
  privateint 超时;,,
  privatestaticint 小姐:=,0;,,//调度工厂实例化后,经过超时时间开始执行调度
  publicvoid  setTimeout (int 超时),{,,
  this.timeout =,超时,,,
  },,/* *
  *,要调度的具体任务
  */@Override
  protectedvoid  executeInternal (JobExecutionContext 上下文),,
  throws  JobExecutionException  {,,
  System.out.println才能(“定时任务执行中…“),,,
  },,
  }
第二步:春天配置文件中配置作业类JobDetailBean

Xml代码

 & lt; bean  name=癹ob1",类=皁rg.springframework.scheduling.quartz.JobDetailBean"比;
  & lt; property  name=癹obClass", value=https://www.yisu.com/zixun/" com.gy.Job1 "/>
  <属性名=" jobDataAsMap ">
  <图>
  
  地图>  

说明:org.springframework.scheduling.quartz。JobDetailBean有两个属性,jobClass属性即我们在java代码中定义的任务类,jobDataAsMap属性即该任务类中需要注入的属性值。

第三步:配置作业调度的触发方式(触发器)

石英的作业触发器有两种,分别是

<李>

org.springframework.scheduling.quartz.SimpleTriggerBean

<李>

org.springframework.scheduling.quartz.CronTriggerBean

第一种SimpleTriggerBean,只支持按照一定频度调用任务,如每隔30分钟运行一次。

配置方式如下:

Xml代码

 & lt; bean  id=皊impleTrigger",类=皁rg.springframework.scheduling.quartz.SimpleTriggerBean"比;
  & lt; property  name=癹obDetail", ref=癹ob1"/比;
  & lt; property  name=皊tartDelay" https://www.yisu.com/zixun/, value=" 0 "/>
  <属性名=" repeatInterval " value=" 2000 "/>
   

第二种CronTriggerBean,支持到指定时间运行一次,如每天12:00运行一次等。

配置方式如下:

Xml代码

 & lt; bean  id=癱ronTrigger",类=皁rg.springframework.scheduling.quartz.CronTriggerBean"比;
  & lt; property  name=癹obDetail", ref=癹ob1"/比;
  比;
  & lt; property  name=癱ronExpression", value=https://www.yisu.com/zixun/" 0 0 12 * * ? "/>
  

如何实现一个春天定时任务