Spring Boot 定时任务

Stella981
• 阅读 409

一、使用场景

需要在程序中加入定时任务,且该定时任务要随着程序的启动而启动,不需要额外的触发 

二、参考文献

本文内容完全复制的以下链接,用作备份,侵删

https://blog.csdn.net/m0_37885618/article/details/77196691

三、spring boot实例

@Configuration
@EnableScheduling
public class SchedulingConfig {
    private final Logger logger = LoggerFactory.getLogger(getClass());

    @Resource 
    private RobotRestServiceImpl robotRestService;

    @Scheduled(cron = "0 0/10 * * * ?") // 每10分钟执行一次
    public void getToken() {
        logger.info("getToken定时任务启动");
    }

说明:

类上带有@Configuration的类,等同于spring的XML配置文件,好处是使用Java代码可以检查类型安全。通常还会搭配其他注解来实现不同的需求,如本例中,搭配的@EnableScheduling。

在spring-boot中需要在类上添加@EnableScheduling注解来开启对计划任务的支持。

在开启对计划任务的支持后,需要@Scheduled注解的配合。@Scheduled是方法上注解,添加该注解的方法即为单个计划任务。@Scheduled注解定义了计划任务的执行计划,有两种方式可以定义: 
1.@Scheduled(fixedRate = 5000) //通过@Scheduled声明该方法是计划任务,使用fixedRate属性每隔固定时间5秒执行一次 
2.@Scheduled(cron = “0 0/10 * * * ?”) //使用cron属性可按照指定时间执行,本例指的是每10分钟执行一次;

点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
SpringBoot学习笔记:计划任务
SpringBoot学习笔记:计划任务计划任务在企业的实践生产中,可能需要使用一些定时任务,如月末、季末和年末需要统计各种各样的报表,每周自动备份数据等。在Spring中使用定时任务1、加入@EnableScheduling注解,以启用定时任务机制@EnableS
Easter79 Easter79
3年前
Spring注解@Scheduled 多线程异步执行
一、前言:Spring定时任务@Schedule的使用方式,默认是单线程同步执行的,启动过程是一个单线程同步启动过程,一旦中途被阻塞,会导致整个启动过程阻塞,其余的定时任务都不会启动。二、@Schedule注解多线程的实现:多个定时任务的执行,通过使用@Async注解来实现多线程异步调用。@Scheduled(
Stella981 Stella981
3年前
Spring Boot 与 Kotlin 定时任务(Scheduling Tasks)
在编写SpringBoot应用中会遇到这样的场景,比如:需要定时地发送一些短信、邮件之类的操作,也可能会定时地检查和监控一些标志、参数等。创建定时任务在SpringBoot中编写定时任务是非常简单的事,下面通过实例介绍如何在SpringBoot中创建定时任务,实现每过5秒输出一下当前时间。在SpringBoot的主类中加入
Stella981 Stella981
3年前
Spring Boot @Scheduled 定时任务实战
作者:J'KYOwww.cnblogs.com/pejsidney/p/9046818.html假设我们已经搭建好了一个基于SpringBoot项目,首先我们要在Application中设置启用定时任务功能@EnableScheduling。启动定时任务packagecom.scheduling;import
Stella981 Stella981
3年前
JFinal Quartz 支持配置文件和持久化
    随着需求的增加,现在要定时启动一个调度和计划任务,原先写的QuartzPlugin,是持久化保存到数据库中的,从数据库中读取任务并执行。要是添加一个每天循环任务,就要在代码里写一次开始任务的代码,执行后,再注释掉,最后重启项目。否则会因为启动同name,同group的任务而报错org.quartz.ObjectAlreadyExistsE
Wesley13 Wesley13
3年前
4、定时任务关闭超时未支付的订单
//1.在主启动类上加上支持定时任务的注解@EnableSchedulingpublicclassApplication{//2.编写定时任务@ComponentpublicclassOrderJob{@Autowiredp
Easter79 Easter79
3年前
SpringBoot学习笔记:计划任务
SpringBoot学习笔记:计划任务计划任务在企业的实践生产中,可能需要使用一些定时任务,如月末、季末和年末需要统计各种各样的报表,每周自动备份数据等。在Spring中使用定时任务1、加入@EnableScheduling注解,以启用定时任务机制@EnableS
Stella981 Stella981
3年前
SpringBoot集成Schedule任务调度
一、前言:微服务应用中可能会涉及到多个定时任务跨服务同时执行,这里就会涉及到线程生命周期和一致性问题,任务调度器本质上还是单独启动的线程执行,但是生命周期不会随应用的停止而销毁,所以本篇内容只涉及当前应用执行定时任务1、配置启动类!(https://static.oschina.net/uploads/space/2018/060
Easter79 Easter79
3年前
SpringBoot集成Schedule任务调度
一、前言:微服务应用中可能会涉及到多个定时任务跨服务同时执行,这里就会涉及到线程生命周期和一致性问题,任务调度器本质上还是单独启动的线程执行,但是生命周期不会随应用的停止而销毁,所以本篇内容只涉及当前应用执行定时任务1、配置启动类!(https://static.oschina.net/uploads/space/2018/060