`

springcloud +springboot 社交电子商务-定时任务@Scheduled

阅读更多

SpringBoot定时任务主要由两个注解完成。

@Scheduled加在方法上面。

@EnableScheduling加在类上面。可以是Application类,也可以是@Component类,还可以是@Controller类等。了解springcloud架构可以加求求:三五三六二四七二五九

如下:

@SpringBootApplication
@EnableScheduling
public class Application {
     public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

 如果@EnableScheduling不想加在Application上方,也可以如下:

@Component
@EnableScheduling
public class ScheduledTasks {

    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(fixedRate = 5000)
    public void reportCurrentTime() {
        System.out.println("现在时间:" + dateFormat.format(new Date()));
    }

}

 @Scheduled用法如下:

@Scheduled(fixedRate = 5000) :上一次开始执行时间点之后5秒再执行
 @Scheduled(fixedDelay = 5000) :上一次执行完毕时间点之后5秒再执行
 @Scheduled(initialDelay=1000, fixedRate=5000) :第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次
 @Scheduled(cron="0 */1 * * * ?  ") :通过cron表达式定义规则,表示每隔1分钟执行一次 

 cron表达式的用法如下:

cron表达式依次表示 [秒] [分] [小时] [日] [月] [周] [年]
常见的Cron示例如下:

*/5 * * * * ?                              表示每隔5秒执行一次        
0 */1 * * * ?                              表示每隔1分钟执行一次     
0 15 10 ? * MON-FRI                表示在每个周一,二, 三和周四的 10:15 AM    
0 15 10 10 * ?                          表示每月10号的 10:15 AM       
0 15 10 L * ?                            每月最后一天的 10:15 AM   
0 10 10 ? * 6L                          每月最后一个周五的 10:10 AM         
0 10 10 ? * 6L 2014-2017          在 2014, 2015, 2016, 和 2017 年中的每月最后一个周五的 10:10 AM      
0 15 10 ? * 6#3                        每月第三个周五的 10:15 AM    
0 0 12 1/5 * ?                           每月从第一天算起每五天的 12:00 PM (中午)     
0 11 11 11 11 ?                        每一个 11 月 11 号的 11:11 AM  
0 10,44 14 ? 3 WED                   三月份每个周三的 2:10 PM 和 2:44 PM     

 其中,表达式中的特殊符号的意义是:

“*” 代表这个时间单位的整个时间段.比如 *放在秒上面,就是指任意秒,*放在分上面就是任意分。
“?”字符:表示不确定的值(注意:? 号只能用在日和周域上,但是不能在这两个域上同时使用。假如你为这两域的其中一个指定了值,那就必须在另一个字值上放一个 ?,如:0 0 0 * * ?)
“,”字符:指定数个值
“-”字符:指定一个值的范围
“/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m
“L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
“W”字符:指定离给定日期最近的工作日(周一到周五)
“#”字符:表示该月第几个周X。5#2表示该月第2个周四(每周的第一天是从周日开始的,即:周日的值为:1)

 

分享到:
评论

相关推荐

    k8s+springboot+cronjob 定时任务配置

    在 Spring Boot 中,我们可以利用 `@Scheduled` 注解来定义定时任务。例如: ```java import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @...

    Spring框架-SpringBoot-定时任务-深入教程.pdf

    Spring Task提供了一种便捷的方式来定义和管理定时任务,尤其在Spring Boot环境中,通过`@EnableScheduling`和`@Scheduled`注解可以轻松地启用和配置定时任务。本文将深入探讨Spring Task的执行原理以及遇到的一些...

    Spring定时任务@Scheduled例子

    `@Scheduled`注解是Spring提供的一个强大工具,用于声明式地配置定时任务,无需编写复杂的线程管理和调度逻辑。在这个例子中,我们将深入探讨`@Scheduled`的用法以及与之相关的`task:scheduler`和`task:executor`。 ...

    Spring框架-SpringBoot-定时任务-深入教程.docx

    Spring框架的定时任务是开发中常见的一种功能,用于自动化执行一系列周期性任务。Spring Boot提供了对Spring Task的集成,使得在Spring Boot应用中配置和管理定时任务变得简单。本文将深入探讨Spring Boot中的定时...

    基于SpringBoot和Spring自带的schedul-springboot-task-scheduled.zip

    而"基于SpringBoot和Spring自带的schedul-springboot-task-scheduled.zip"项目则涉及到了SpringBoot中的定时任务功能,即Spring的`scheduled`模块。这个压缩包可能包含了一个示例项目,用于演示如何在SpringBoot应用...

    spring boot @scheduled定时任务配置

    在Spring Boot框架中,`@Scheduled`注解是用于创建定时任务的重要工具,它使得开发者无需依赖外部的任务调度器如Quartz或CronJob,就能在应用内部轻松地实现周期性的任务执行。这个特性极大地简化了Java应用中的定时...

    springboot定时任务:基于注解(@scheduled)的简单定时器.zip

    springboot定时任务:基于注解(@scheduled)的简单定时器

    spring-boot通过@Scheduled配置定时任务及定时任务@Scheduled注解的方法

    "spring-boot通过@Scheduled配置定时任务及定时任务@Scheduled注解的方法" Spring Boot 中的定时任务是通过 @Scheduled 注解来实现的,该注解可以将方法标记为定时任务,Spring Boot 会自动发现并执行这些方法。@...

    Springboot中使用数据库配置定时任务

    在Spring Boot应用中,我们可以利用其强大的自动化配置和Spring Task模块来实现基于数据库配置的定时任务。Spring Task是Spring框架的一部分,它提供了丰富的定时和调度功能,使得在Java应用中执行周期性任务变得...

    Spring @Scheduled定时任务动态修改cron参数

    `@Scheduled`注解是Spring Framework中用于创建定时任务的重要工具,它允许开发者在不重启应用的情况下,实现定时任务的动态配置,特别是修改cron表达式来调整执行周期。 在Spring中,定时任务主要通过`@Scheduled`...

    Java多线程之定时任务 以及 SpringBoot多线程实现定时任务——异步任务

    1. SpringBoot 自定义线程池以及多线程间的异步调用(@Async、@EnableAsync) 2.Java多线程之定时任务 以及 SpringBoot多线程实现定时任务 3.@EnableScheduling 与 @Scheduled

    maven工程-基于springboot定时任务

    首先,我们需要了解Spring Boot中的定时任务是通过其内置的`@Scheduled`注解和`TaskScheduler`或`SchedulerTaskExecutor`实现的。`@Scheduled`注解允许我们在方法上声明一个定时任务,而`TaskScheduler`和`...

    Spring Boot中的@Scheduled注解:定时任务的原理与实现

    ### Spring Boot中的@Scheduled注解:定时任务的原理与实现 #### 一、引言 在现代软件开发中,定时任务是一种非常常见的需求。无论是数据同步、定期清理缓存还是发送提醒邮件,都需要应用程序能够在特定的时间点...

    springboot与scheduler结合的定时任务工具、实例项目

    在这个"springboot与scheduler结合的定时任务工具、实例项目"中,我们将深入探讨如何在Spring Boot应用中利用Spring Scheduler来执行计划任务。 首先,Spring Scheduler提供了一个方便的方式来安排和执行周期性任务...

    springboot定时任务的动态开启关闭

    在Spring Boot应用中,定时任务是一项非常实用的功能,它允许我们按照预定的时间间隔执行特定的任务。Spring Boot提供了Spring Scheduler抽象来实现这样的需求,使得开发者能够方便地管理和控制定时任务。本篇文章将...

    springboot 定时任务@Scheduled实现解析

    Spring Boot 定时任务 @Scheduled 实现解析 Spring Boot 框架提供了 @Scheduled 注解来实现定时任务,该注解可以将方法标记为定时任务,以便在特定的时间点或间隔执行。下面将详细介绍 Spring Boot 中的定时任务...

    SpringBoot执行定时任务@Scheduled的方法

    Spring Boot 执行定时任务 @Scheduled 的方法 Spring Boot 提供了对定时任务的支持,通过使用 @Scheduled 注解,可以实现定时任务的执行。本文将详细介绍 Spring Boot 中 @Scheduled 定时器的使用。 创建定时任务 ...

    springboot动态配置定时任务(schedule)

    总结来说,Spring Boot通过`@Scheduled`注解提供了强大的定时任务功能,结合`@ConfigurationProperties`和`@RefreshScope`,我们可以轻松实现定时任务的动态配置,使得任务管理更加灵活。这不仅简化了开发流程,也...

Global site tag (gtag.js) - Google Analytics