zoukankan      html  css  js  c++  java
  • Java定时任务Scheduled

    @Scheduled
    具体参数可以参考spring-context-5.1.6.RELEASE.jar下面的org.springframework.scheduling.annotation.Scheduled类
    
    cron
    设置时分秒等具体的定时。
    // 每隔10分钟执行一次
    @Scheduled(cron="0 0/10 * * * ?")
    
    zone
    时区,接收一个java.util.TimeZone#ID。cron表达式会基于该时区解析。默认是一个空字符串,即取服务器所在地的时区。比如我们一般使用的时区Asia/Shanghai。该字段我们一般留空。
    
    fixedDelay
    每次执行任务之后间隔多久再次执行该任务。项目启动时,会立即执行任务。可以配合initialDelay一起使用,即,项目启动后延时执行任务
    // 上次任务执行完后,间隔15秒再次执行
    @Scheduled(fixedDelay = 1000 * 15)
    fixedDelayString
    与fixedDelay意思相同。只是使用字符串的形式。唯一不同的是支持占位符
    // 上次任务执行完后,间隔15秒再次执行
    @Scheduled(fixedDelay = "15000")
    占位符的使用(配置文件中有配置:time.fixedDelay=5000
    @Scheduled(fixedDelay = "${time.fixedDelay}")
    
    fixedRate
    执行频率。每隔多少时间就启动任务,不管该任务是否启动完成。项目启动时,会立即执行任务。可以配合initialDelay一起使用,即,项目启动后延时执行任务
    // 每隔15分钟执行一次
    @Scheduled(fixedRate = 1000 * 60 * 15)
    
    fixedRateString
    与fixedRate意思相同,只是使用字符串的形式。唯一不同的是支持占位符。
    
    initialDelay
    初次执行任务之前需要等待的时间
    // 延迟5秒执行
    @Scheduled(initialDelay = 5000)
    
    initialDelayString
    与initialDelay意思相同,只是使用字符串的形式。唯一不同的是支持占位符。
    
    
    其中 cron使用举例:
    @Scheduled(cron = "0 3 2 1 * ?")//每月的1日的凌晨2点3分调度任务
    "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触发
    "0 0 2 1 * ?" 每月的1日的凌晨2点调度任务
    "0 0 0 1 * ?" 每月月初执行一次
  • 相关阅读:
    2019 | 开启新的堕落生活
    2018博客之星评选,我非常需要您宝贵的一票!♪(・ω・)ノ
    前端开发 2018 回顾
    全栈设计模式套餐MVVM, RESTful, MVC的历史探索
    停止学习框架
    那些被浏览器阻止的模拟事件...
    Just Cause系列游戏品鉴
    GPU硬件加速原理 /转
    快速上手最棒的网格框架ag-Grid
    用户数据验证的正确姿势之assert
  • 原文地址:https://www.cnblogs.com/ljc1212/p/14543928.html
Copyright © 2011-2022 走看看