博客
关于我
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/

你可能感兴趣的文章
Nginx访问控制_登陆权限的控制(http_auth_basic_module)
查看>>
nginx负载均衡器处理session共享的几种方法(转)
查看>>
nginx负载均衡的五种算法
查看>>
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
NI笔试——大数加法
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
Nmap扫描教程之Nmap基础知识
查看>>
Nmap端口扫描工具Windows安装和命令大全(非常详细)零基础入门到精通,收藏这篇就够了
查看>>
NMAP网络扫描工具的安装与使用
查看>>
NN&DL4.1 Deep L-layer neural network简介
查看>>