首页 > 其他分享 >SpringBoot 定时任务

SpringBoot 定时任务

时间:2023-01-26 09:22:33浏览次数:60  
标签:SpringBoot springframework annotation cron 任务 org import 定时 public

示例

# ScheduledTaskService.java

package com.ln.myboot3.schedule;

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;

@Service
public class ScheduledTaskService {
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
    private ScheduledTaskService() {
        System.out.println("ScheduledTaskService Construct.......");
    }


    @Scheduled(fixedRate = 5000) //通过@Scheduled声明该方法是计划任务,使用fixedRate属性每隔固定时间执行
    public void reportCurrentTime() {
        System.out.println("每隔5秒执行一次 " + dateFormat.format(new Date()));
    }

    @Scheduled(cron = "0 07 20 ? * *") //使用cron属性可按照指定时间执行,本例指的是每天20点07分执行
    //cron是UNIX和类UNIX(Linux)系统下的定时任务
    public void fixTimeExecution() {
        System.out.println("在指定时间 " + dateFormat.format(new Date()) + " 执行");
    }

    @Scheduled(cron = "0/10 * * * * ?")
    public void init() {
        this.prepare();
    }

    public void prepare() {
        System.out.println("=== 每10s执行一次,now time:" + dateFormat.format(new Date()));
    }
}

#配置 TaskScheduleConfig

package com.ln.myboot3.schedule;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.concurrent.ConcurrentTaskScheduler;

@Configuration
@ComponentScan()
@EnableScheduling
public class TaskScheduleConfig {
    @Bean
    public TaskScheduler taskScheduler() {
        return new ConcurrentTaskScheduler();
    }
}

# 启动 Myboot3Application

package com.ln.myboot3;

import com.ln.myboot3.schedule.TaskScheduleConfig;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

@SpringBootApplication
public class Myboot3Application {

    public static void main(String[] args) {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TaskScheduleConfig.class);
    }

}

 

cron含义

[秒] [分] [时] [日] [月] [周] [年]

线上工具: https://cron.qqe2.com/

 

标签:SpringBoot,springframework,annotation,cron,任务,org,import,定时,public
From: https://www.cnblogs.com/kaituorensheng/p/17067556.html

相关文章

  • SpringBoot 定时任务示例
    示例#ScheduledTaskService.javapackagecom.ln.myboot3.schedule;importorg.springframework.scheduling.annotation.Scheduled;importorg.springframework.ster......
  • C#中使用 CancellationToken 取消异步任务
    .NET提供了一个类方便用来发出操作取消的信号,这个类就是CancellationToken,它的好处在于它可以在任意数量的线程之间、线程池任务之间、Task之间传递信号,并且所需的代码很......
  • 230125_50_SpringBoot入门
    SpringBoot实战:员工管理系统1.静态资源导入可以从百度网盘获取资源:链接:https://pan.baidu.com/s/1x-6U_NCNEhIXOq0CcvRW-g提取码:mg94复制这段内容后打开百度......
  • 事件循环Event loop,宏任务与微任务
    任务挂起、同步任务执行结束执行队列中的异步任务、执行script标签内部代码、setTimeout/setInterval、ajax请、postMessageMessageChannel、setImmediate、I/O(Node.js)Prom......
  • Day13 - 多任务编程【线程】
    1.线程介绍线程也是实现多任务的一种方式一个程序在执行时会对应一个主进程,主进程中会有一个主线程通过主线程手动产生的线程称为子线程进程是最小资源分配单位线程......
  • SpringBoot 教程
    什么是SpringBootSpringBoot教程提供了SpringFramework的基本和高级概念。我们的SpringBoot教程面向初学者和专业人士。SpringBoot是一个Spring模块,为Spring框架提......
  • 静态Web服务器-多任务版Python解释器详解实现代理池的API模块
    学习目标能够写出多线程版的多任务web服务器程序1.静态Web服务器的问题目前的Web服务器,不能支持多用户同时访问,只能一个一个的处理客户端的请求,那么如何开发多任务版的web......
  • arduino 中使用FreeRTOS 创建任务
    arduino中使用FreeRTOS创建任务#include<Arduino.h>TaskHandle_tx_task_one=NULL;voidtask_one(void*param);voidsetup(){Serial.begin(115200);......
  • Day12 - 多任务编程【进程】
    0.多任务的概念多任务是指在同一时间内执行多个任务,例如:现在电脑安装的操作系统都是多任务操作系统,可以同时运行着多个软件。1.多任务介绍多任务为提高程序的执行效......
  • 《数据结构》课程设计任务书[2023-01-24]
    《数据结构》课程设计任务书[2023-01-24]《数据结构》课程设计任务书此任务书仅适用选课储岳中老师的学生QQ群:7492682161(入群密码:2022DS1)一、设计要求仔细阅读《......