Spring Task
发布日期:2021-10-22 18:10:46 浏览次数:3 分类:技术文章

本文共 2402 字,大约阅读时间需要 8 分钟。

 

 

1、定时任务

 

 业务场景:

  1) 每天凌晨备份数据

  2) 每个月清空一下日志

  3) 页面上投放的广告,每个月过期

  4) 每三个月清空一下cookie

 

 

  定时任务:某个功能、业务,需要在规定的时间内,频度、间隔运行

 

2、三种 

  1) java自带的API:

    java.util.Timer类  定时器类

    java.util.TimerTask类  定时任务类

   

    可以实现指定频度间隔运行、不能在指定时间运行

  2) Quartz框架 开源 功能强大 使用起来稍显复杂

  3) Spirng3.0 以后自带的task调度工具,比Quartz更加简单方便

 

二、开发环境准备

   

    1) 创建一个javaweb工程 (maven工程)

    2) 引入相关就jar包

      pom: spring-context  spring-web

    3) 基本的配置

      web.xml 中配置Spring监听器

contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener

接口和实现类:

public interface TaskService {    void firstTask();    void secondTask();}public class TaskServiceImpl implements TaskService {    @Override    public void firstTask() {        System.out.println(new Date()+":这是第一个定时任务");    }    @Override    public void secondTask() {        System.out.println(new Date() + ":这是第二个定时任务");    }}

 

三、如何使用Spring Task

      1) 纯xml配置的方式

            a.简单定时任务

                  实现业务功能+配置定时规则

            b.复杂定时任务

      corn表达式:

 

 

 

 

 

 

 

      2)全注解的方式

    a. 在业务方法上提供注解

    b. 开启注解支持

    实现类:

@Servicepublic class TaskServiceImpl implements TaskService {//    @Scheduled(initialDelay=1000, fixedDelay=1000)    @Scheduled(cron="*/5 * * * * ?")    @Override    public void firstTask() {        System.out.println(new Date()+":这是第1个定时任务");    }//    @Scheduled(initialDelay=2000, fixedDelay=3000)    @Scheduled(cron="* 7 22 * * ?")    @Override    public void secondTask() {        System.out.println(new Date() + ":这是第2个定时任务");    }}

    applicationContext.xml

 

四、在SpringBoot中实现定时任务

 

 

 

@Componentpublic class MyTask {//    @Scheduled(initialDelay=1000, fixedDelay=1000)    @Scheduled(cron="*/5 * * * * ?")    public void firstTask() {        System.out.println(new Date()+":这是第1个定时任务");    }//    @Scheduled(initialDelay=2000, fixedDelay=3000)    @Scheduled(cron="* 25 23 * * ?")    public void secondTask() {        System.out.println(new Date() + ":这是第2个定时任务");    }}
@SpringBootApplication@EnableSchedulingpublic class SpringBookTaskApplication {    public static void main(String[] args) {        SpringApplication.run(SpringBookTaskApplication.class, args);    }}

 

转载于:https://www.cnblogs.com/hk-zsg/p/11456514.html

转载地址:https://blog.csdn.net/weixin_30402343/article/details/102315350 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:小问题记录
下一篇:ES6 第二天

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月15日 17时04分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章