今天就跟大家聊聊有关如何实现一个春天定时任务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):
- <李>
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 * * ? "/>如何实现一个春天定时任务