Java @Scheduled定时器用法解析

 更新时间:2022年05月20日 08:33:26   作者:Schon_zh  
这篇文章主要介绍了Java @Scheduled定时器用法解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@Scheduled定时器用法

程序中若需要在某个时间循环执行某项任务,就可以使用@Scheduled定时器

源码如下:

    @Scheduled(cron="0 0 21 * * ?") //每天晚上九点执行一次    21点
    public void taskCycle() throws  Exception{
        System.out.println("############定时校验代金券过期任务开始执行");
        }
@Scheduled(cron="0 0 21 * * ?") 

配置完整格式为: [秒] [分] [小时] [日] [月] [周] [年]

其中每个元素 可以是一个值(如6),

  • 一个连续区间(9-12),
  • 一个间隔时间(8-18/4)(/表示每隔4小时),
  • 一个列表(1,3,5), 通配符。

由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?.

0 0 10,14,16 * * ?每天上午10点,下午2点,4点
0 0/30 9-17 * * ?朝九晚五工作时间内每半小时
0 0 12 ? *WED 表示每个星期三中午12点
“0 0 12 * * ?”每天中午12点触发
“0 15 10 ? * *”每天上午10:15触发
“0 15 10 * * ?”每天上午10:15触发
“0 15 10 * * ? *”每天上午10:15触发
“0 15 10 * * ? 2005”2005年的每天上午10:15触发
“0 * 14 * * ?”在每天下午2点到下午2:59期间的每1分钟触发
“0 0/5 14 * * ?”在每天下午2点到下午2:55期间的每5分钟触发
"0 “0/5 14,18 * * ?”在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
“0 0-5 14 * * ?”在每天下午2点到下午2:05期间的每1分钟触发
“0 10,44 14 ? 3 WED”每年三月的星期三的下午2:10和2:44触发
“0 15 10 ? * MON-FRI”周一至周五的上午10:15触发
“0 15 10 15 * ?”每月15日上午10:15触发
“0 15 10 L * ?”每月最后一日的上午10:15触发
“0 15 10 ? * 6L”每月的最后一个星期五上午10:15触发
“0 15 10 ? * 6L 2002-2005”2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? “* 6#3”每月的第三个星期五上午10:15触发

@Scheduled的几种使用方式

两个方法串行执行

直接在方法上加上@Scheduled注解,

两个方法并行,且自己也并行

添加@EnableAsync和@Async注解

两个方法并行,且自己串行

做如下配置,就可以实现了

@Configuration
@EnableScheduling
public class ScheduleConfig implements SchedulingConfigurer {
    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        taskRegistrar.setScheduler(taskExecutor());
    }
    @Bean(destroyMethod="shutdown")
    public Executor taskExecutor() {
        return Executors.newScheduledThreadPool(2);
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于Java的Spring框架来操作FreeMarker模板的示例

    基于Java的Spring框架来操作FreeMarker模板的示例

    这篇文章主要介绍了基于Java的Spring框架来操作FreeMarker模板的示例,讲到了用于进行web模板文件的插值操作等例子,需要的朋友可以参考下
    2016-03-03
  • 解析springboot包装controller返回值问题

    解析springboot包装controller返回值问题

    这篇文章主要介绍了springboot包装controller返回值问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • spring boot2.0实现优雅停机的方法

    spring boot2.0实现优雅停机的方法

    这篇文章主要介绍了spring boot2.0实现优雅停机的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Spring Boot集成Thymeleaf的方法

    Spring Boot集成Thymeleaf的方法

    这篇文章主要介绍了Spring Boot集成Thymeleaf的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • java实现猜拳小游戏

    java实现猜拳小游戏

    这篇文章主要为大家详细介绍了java实现猜拳小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • MyBatis-plus批量插入的通用方法使用

    MyBatis-plus批量插入的通用方法使用

    mybatis-plus的IService接口默认提供saveBatch批量插入,也是唯一一个默认批量插入,在数据量不是很大的情况下可以直接使用,本文带你详细了解MyBatis-plus 批量插入的通用方法及使用方法,需要的朋友可以参考一下
    2023-04-04
  • 聊聊finally中的代码一定会执行吗

    聊聊finally中的代码一定会执行吗

    通常在面试中,只要是疑问句一般答案都是“否定”的,因为如果是“确定”和“正常”的,那面试官就没有必要再问了嘛,本文想和大家聊聊finally中的代码一定会执行吗?,感兴趣的朋友跟着小编一起来看看吧
    2023-12-12
  • java文件操作练习代码 读取某个盘符下的文件

    java文件操作练习代码 读取某个盘符下的文件

    这篇文章主要介绍了java读取某个盘符下的文件示例,代码中要求的是绝对路径,编译过程中要注意绝对路径问题和异常的抓取
    2014-01-01
  • Mybatis中SqlSession接口中selectList方法详解

    Mybatis中SqlSession接口中selectList方法详解

    这篇文章主要给大家介绍了关于Mybatis中SqlSession接口中selectList方法的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-03-03
  • 基于spring-security 401 403错误自定义处理方案

    基于spring-security 401 403错误自定义处理方案

    这篇文章主要介绍了基于spring-security 401 403错误自定义处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07

最新评论