• 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");
        }
    
    }
  • 相关阅读:
    使用 media 实现响应式布局
    Django组件的中间件
    Django组件的cookie和 session,用户认证组件
    Django的文件上传和分页
    Ajax
    Django模型层的多表操作(2)
    Django模型层的多表操作(1)
    Django的查询表记录
    Django2.0版本的路由层和ORM但表操作
    Django的路由层,视图层和模版层
  • 原文地址:https://www.cnblogs.com/wanqiang/p/14281919.html
Copyright © 2020-2023  润新知