您现在的位置是:首页 >

调度管理的基本任务是什么 Java调度任务和Spring Quartz

火烧 2022-09-08 23:04:06 1044
Java调度任务和S ri g Quartz   并非所有的系统中发生的事情都是由用户主动引发的 系统有时候需要根据一定的规则触发相应的时间 其实在jdk java dk就通过java util Ti
调度管理的基本任务是什么 Java调度任务和Spring Quartz

Java调度任务和Spring Quartz  

  并非所有的系统中发生的事情都是由用户主动引发的 系统有时候需要根据一定的规则触发相应的时间 其实在jdk java sdk就通过java util Timer提供相应的功能 一个简单的例子说明如何使用 很简单

   第一步 我们需要建立一项任务 我们的任务需要继承java util TimerTask

   package danan;import java text SimpleDateFormat;import java util Date;import java util TimerTask;public class TimeTask extends TimerTask {    @Override    public void run() {        //没有秒钟 报告现在的时刻任务        SimpleDateFormat sdf=new SimpleDateFormat( yyyy年MM月 HH:mm:ss );        System out println(sdf format(new Date()));    }}

   我们需要启动我们的任

package danan;import java util Timer;/** * @author Administrator * */public class Hello {  public static void main(String[] args) throws Exception {       Timer timer=new Timer();       timer schedule(new TimeTask() );//注册此任务在第一次运行后的 秒钟时间执行 以后每隔 秒钟时间执行一次   }}

  schedule(TimerTask task long delay long period)中task指定了需要执行的任务 delay指定在第一次运行任务后的多少毫秒执行此任务 period参数指定在以后的多少毫秒执行一次任务

  我们可以看到 很遗憾的是Timer只可以指定多久执行一次 并不能指定在具体那个时间点执行这项任务 比如说我们需要每天午夜 执行某一任务 而正是QuartZ调度器起作用的时候了 关于QuartZ的更多信息可以访问 下面让我们来看QuartZ是怎么工作的吧!

  创建一项任务

  

  public class Shedule { //this class do daily task for message awoke and cycle task    public Shedule() {            }    public void say(){        //cycleTask();        messageAwoke();            }}

   package danan action;import quartz JobExecutionContext;import quartz JobExecutionException;import springframework scheduling quartz QuartzJobBean;public class DailySay extends QuartzJobBean {    private Shedule sh ;    @Override    protected void executeInternal(JobExecutionContext arg )            throws JobExecutionException {        sh say();    }    public Shedule getSh() {        return sh;    }    public void setSh(Shedule sh) {        this sh = sh;    }}

  我们使用Spring的注入容器注入Shedule

   调度cron任务

  在Spring配置文件中

  

      <bean id= task class= danan action Shedule >    <property name= hibernateSession ref= hibernateSession ></property>    </bean>    <bean id= job class= springframework scheduling quartz JobDetailBean >    <property name= jobClass value= danan action DailySay ></property>    <property name= jobDataAsMap >    <map>    <entry key= sh value ref= task ></entry>    </map>    </property>    </bean>    <bean id= report class= springframework scheduling quartz CronTriggerBean >    <property name= jobDetail ref= job ></property>    <property name= cronExpression value= * * ? ></property>    </bean>

   启动任务

  

  <bean id= schedulerFactoryBean class= springframework scheduling quartz SchedulerFactoryBean >    <property name= triggers >    <list>    <ref bean= report />    </list>    </property>    </bean>

lishixinzhi/Article/program/Java/ky/201311/28595  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码