博客
关于我
spring 定时任务@Scheduled注解(代码超详细)和串并行配置
阅读量:367 次
发布时间:2019-03-04

本文共 1171 字,大约阅读时间需要 3 分钟。

Spring @Scheduled 定时任务使用指南

一、@Scheduled 注解的使用方法

在 Spring 应用中,使用 @Scheduled 注解可以轻松配置定时任务。以下是基本使用方法:

1. 注解驱动配置

在配置文件中添加以下内容,开启定时任务支持:

  • task:annotation-driven:自动检测方法注解的定时任务。
  • task:scheduler:配置线程池,调整定时任务的并行执行。

2. 定时任务的配置

在需要定时执行的类上添加 @Scheduled 注解:

import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Service;@Servicepublic class ScheduledService {        @Scheduled(cron="0 0 10 * * ?")    public void executeTask() {        // 定时任务逻辑...    }}
  • cron表达式:用于定义任务执行的时间规则。

二、Cron 表达式详解

Cron 表达式是定义定时任务的语言,支持复杂的时间规则。每个字段由空格分隔,支持以下特殊字符:

字段 允许值 特殊字符
0-59 , - * /
分钟 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 , - * /
星期 1-7 , - * ? / L C #
1970-2099 , - * /

1. 常见 Cron 示例

  • 每5秒执行一次0/5 * * * * ?
  • 工作日每半小时0 0/30 9-17 * * ?
  • 每周三中午12点0 0 12 ? * WED

2. 特殊字符解析

  • *:表示所有可能值。
  • ?:表示“非明确值”,适用于日期和星期。
  • -:指定范围。
  • ,:列出多个值。
  • /:指定增量值。
  • L:表示“最后”(day-of-month或day-of-week)。
  • W:表示“最近工作日”(仅在日期字段中使用)。
  • C:与日历关联。
  • #:指定本月的某一天(仅在星期字段中使用)。

三、串并行配置

默认情况下,Spring 的定时任务是串行执行的。如果需要并行执行,需在配置文件中设置线程池:

这样可以同时执行多个定时任务,提升效率。

四、Cron 表达式最佳实践

  • 简洁明了:使用最少字符即可满足需求。
  • 模糊匹配:使用 * 代替具体值,扩大匹配范围。
  • 特殊字符谨慎:避免复杂表达式,确保可读性。

通过合理配置 Cron 表达式,可以创建出精准的定时任务。

转载地址:http://izdg.baihongyu.com/

你可能感兴趣的文章
Objective-C实现monte carlo dice蒙特卡洛骰子模拟算法(附完整源码)
查看>>
Objective-C实现monte carlo蒙特卡罗算法(附完整源码)
查看>>
Objective-C实现MSRCR算法(附完整源码)
查看>>
Objective-C实现multi level feedback queue多级反馈队列算法(附完整源码)
查看>>
Objective-C实现multilayer perceptron classifier多层感知器分类器算法(附完整源码)
查看>>
Objective-C实现multiplesThreeAndFive三或五倍数的算法 (附完整源码)
查看>>
Objective-C实现n body simulationn体模拟算法(附完整源码)
查看>>
Objective-C实现naive string search字符串搜索算法(附完整源码)
查看>>
Objective-C实现natural sort自然排序算法(附完整源码)
查看>>
Objective-C实现nested brackets嵌套括号算法(附完整源码)
查看>>
Objective-C实现nevilles method多项式插值算法(附完整源码)
查看>>
Objective-C实现newton raphson牛顿-拉夫森算法(附完整源码)
查看>>
Objective-C实现newtons second law of motion牛顿第二运动定律算法(附完整源码)
查看>>
Objective-C实现newton_forward_interpolation牛顿前插算法(附完整源码)
查看>>
Objective-C实现newton_raphson牛顿拉夫森算法(附完整源码)
查看>>
Objective-C实现NLP中文分词(附完整源码)
查看>>
Objective-C实现NLP中文分词(附完整源码)
查看>>
Objective-C实现NMS非极大值抑制(附完整源码)
查看>>
Objective-C实现NMS非极大值抑制(附完整源码)
查看>>
Objective-C实现Node.Js中生成一个UUID/GUID算法(附完整源码)
查看>>