博客
关于我
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 (XCODE) 绘图功能简介(转载)
查看>>
Objective-C——判断对象等同性
查看>>
Objective-C之成魔之路【7-类、对象和方法】
查看>>
Objective-C享元模式(Flyweight)
查看>>
Objective-C以递归的方式实现二叉搜索树算法(附完整源码)
查看>>
Objective-C内存管理教程和原理剖析(三)
查看>>
Objective-C实现 Greedy Best First Search最佳优先搜索算法(附完整源码)
查看>>
Objective-C实现 jugglerSequence杂耍者序列算法 (附完整源码)
查看>>
Objective-C实现1000 位斐波那契数算法(附完整源码)
查看>>
Objective-C实现2 个数字之间的算术几何平均值算法(附完整源码)
查看>>
Objective-C实现2d 表面渲染 3d 点算法(附完整源码)
查看>>
Objective-C实现2D变换算法(附完整源码)
查看>>
Objective-C实现3n+1猜想(附完整源码)
查看>>
Objective-C实现3n+1猜想(附完整源码)
查看>>
Objective-C实现9x9乘法表算法(附完整源码)
查看>>
Objective-C实现9×9二维数组数独算法(附完整源码)
查看>>
Objective-C实现A-Star算法(附完整源码)
查看>>
Objective-C实现abbreviation缩写算法(附完整源码)
查看>>
Objective-C实现ABC人工蜂群算法(附完整源码)
查看>>
Objective-C实现activity selection活动选择问题算法(附完整源码)
查看>>