zoukankan      html  css  js  c++  java
  • Quartz定时任务使用(一)

    一、概述

    用Spring,就是为了简单。

    但是我还是要总结下java定时任务实现的几种方式。

    1.TimerTask,等于一个线程隔一段时间运行一下。

    2.ScheduledExecutorService,线程池版的TimerTask。

    3.Spring支持的定时任务,@Schedule注解,支持crontab表达式。

    4.quartz,比较流行的任务调度工具,就是配置起来麻烦。

    这里只讲3、4,前两个跟Spring没关系,这里不讲。

    二、内置定时任务

    2.1 Maven依赖

    内置定时任务不需要额外添加依赖。

    2.2 配置文件

    在application.properties 中不需要额外添加下面的配置,但是可以把定时任务的crontab表达式提出来,如:

    schedule.task.test=0/2 * * * * ?

    2.3 配置定时任务

    需要使用@EnableScheduling注解启动定时任务,然后在需要定时执行的方法上加上@Scheduled即可:

    ScheduleConfig:

    package com.cff.springbootwork.schedule.config;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.annotation.EnableScheduling;
    import org.springframework.scheduling.annotation.Scheduled;
    
    import com.cff.springbootwork.schedule.service.ScheduleService;
    
    @Configuration
    @EnableScheduling
    public class ScheduleConfig {
        @Autowired
        ScheduleService scheduleService;
    
        @Scheduled(cron = "${schedule.task.test}")
        public void dayJob() {
            scheduleService.doJob();
        }
    }

    2.4 测试的Service

    package com.cff.springbootwork.schedule.service;
    
    import org.springframework.stereotype.Service;
    
    @Service
    public class ScheduleService {
    
        public void doJob() {
            System.out.println("test");
        }
    
    }
  • 相关阅读:
    Redis 多项目序列化问题
    Java序列化的相关认知
    《Proxy系列专题》:代理模式(静态、JDK、CGLib)
    好文章地址
    @ServletComponentScan
    Spring 自动配置的原理
    B+Tree
    Sentinel
    ThreadPoolUtil
    UUID
  • 原文地址:https://www.cnblogs.com/wanqiang/p/14281919.html
Copyright © 2011-2022 走看看