Spring整合Quartz Job以及Spring Task的实现方法

网友投稿 379 2023-03-03


Spring整合Quartz Job以及Spring Task的实现方法

Spring中常用的定时任务的主要有两种

1、Spring整合Quartz Job

2、Spring 3.0以后自带的Task

一、两种定时任务的实现方式

Quartz job

1、首先编写任务类

package com.yjf.job;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

/**

* @author yjf

*/

public class ExampleJob {

private static final Logger logger = LoggerFactory.getLogger(ExampleJob.class);

public void run() {

logger.info("ExampleJob运行了");

}

}

2、添加Spring整合Quartz的配置

Spring Task

1、编写任务类

package com.yjf.job;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.scheduling.annotation.Scheduled;

import org.springframework.stereotype.Component;

/**

* @author yjf44568

*/

@Component

public class SearchUserJob{

private Logger logger = LoggerFactory.getLogger(this.getClass());

@Scheduled(cron = "*/5 * * * * ?")

public void doIt(){

logger.info("我正在做");

}

}

2、添加task的配置文件

二、比较一下两者的优缺点

Quartz Job特点

1、功能强大,但是配置略微繁琐

2、Quartz每次执行都创建一个新的任务对象

3、Quartz的某次执行任务过程中抛出异常,不影响下一次任务的执行,当下一次执行时间到来时,定时器会再次执行任务。

Spring Task 特点

1、使用@Scheduled注解及少量配置实现,使用简单

2、Task每次执行使用的是同一个任务对象

3、TimerTask一旦某个任务在执行过程中抛出异常,则整个定时器生命周期就结束,以后永远不会再执行该定时器任务。

目前,我个人还是使用Quartz Job较多


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:高内聚低耦合法则实例解析
下一篇:Spring生命周期回调与容器扩展详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~