惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
D
Docker
S
SegmentFault 最新的问题
博客园 - 聂微东
美团技术团队
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
M
MIT News - Artificial intelligence
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
GbyAI
GbyAI
L
LangChain Blog
Vercel News
Vercel News
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
Engineering at Meta
Engineering at Meta
T
Threat Research - Cisco Blogs
T
Threatpost
Scott Helme
Scott Helme
T
Tailwind CSS Blog
Latest news
Latest news
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
The Register - Security
The Register - Security
罗磊的独立博客
P
Proofpoint News Feed
腾讯CDC
S
Schneier on Security
雷峰网
雷峰网
A
About on SuperTechFans
T
Tenable Blog
F
Full Disclosure
Cyberwarzone
Cyberwarzone
博客园_首页
有赞技术团队
有赞技术团队
K
Kaspersky official blog

任霏博客

我将关闭服务器:AI彻底掐死了奄奄一息的个人博客 - 博客文章 - 任霏的个人博客网站 Vibe Coding 实现本地模型 Token 自由 IntelliJ IDEA + LM Studio + LM Link + Continue 1Password涨价后,别急着退订1Password,这个操作能帮你省25% - 博客文章 - 任霏的个人博客网站 我,吃饱了撑的注册了个域名,Cloudflare账号没了,不建议将域名放在Cloudflare - 博客文章 - 任霏的个人博客网站 临时邮箱:保护隐私与免骚扰的新方式 - 博客文章 - 任霏的个人博客网站 价值4100万美元SOL被盗SwissBorg在Solana上遭遇安全事件超200万枚ETH排队退出质押 - 博客文章 - 任霏的个人博客网站 注意 Web3 钱包遭遇 NPM 超大规模供应链攻击投毒事件 - 博客文章 - 任霏的个人博客网站 我受到以太坊ERC-20假代币地址投毒攻击记录一下大家谨防上当受骗 - 博客文章 - 任霏的个人博客网站 在2025年使用显卡 NVIDIA RTX 2080 Ti 挖矿收益记录和分析还能不能挖矿 - 博客文章 - 任霏的个人博客网站 分享我是如何成功戒烟的经验(包含失败的经验) - 博客文章 - 任霏的个人博客网站 在 OpenWRT 中配置 PassWall2 插件的教程记录 - 博客文章 - 任霏的个人博客网站 Office Professional Plus 2019 VL 版下载与 KMS 激活 - 博客文章 - 任霏的个人博客网站 最近几天我的 CDN 流量受到来自电信[山东烟台]、[江苏扬州]两地家庭宽带的攻击 - 博客文章 - 任霏的个人博客网站 自建AI服务器使用PVE配置显卡直通虚拟机安装驱动、CUDA和cuDNN运行LLM大模型进行AI炼丹 - 博客文章 - 任霏的个人博客网站 各代英特尔Intel芯片组主板适配兼容的CPU和DDR内存数据统计 - 博客文章 - 任霏的个人博客网站 GitLab Global 国际站将在60天内删除中国大陆、香港、澳门地区的账号 - 博客文章 - 任霏的个人博客网站 Github Copilot Free 开放免费版所有人均可使用 OpenAI GPT-4o、Anthropic Claude 3.5 AI 代码生成服务 - 博客文章 - 任霏的个人博客网站 Cloudflare 更新了订阅协议明确禁止优选IP和搭建梯子的行为 - 博客文章 - 任霏的个人博客网站 Linux(systemd)手动离线安装二进制(binary)MairaDB数据库指定版本 - 博客文章 - 任霏的个人博客网站 流程引擎 Flowable/Activiti 无法启动报错:liquibase - Waiting for changelog lock.... - 博客文章 - 任霏的个人博客网站 Spring Boot 全局异常捕获 ControllerAdvice 无法捕获 过滤器(Filter)和拦截器(Interceptor)中的异常 - 博客文章 - 任霏的个人博客网站 Freenom 收回了全部免费域名(.tk/.cf/.gq/.ga/.ml) - 博客文章 - 任霏的个人博客网站 Alibaba Druid 数据库连接池 takeLast() AQS 死锁导致程序无响应 - 博客文章 - 任霏的个人博客网站 你的网站加入 HSTS preload 预加载列表了吗 - 博客文章 - 任霏的个人博客网站 我的博客网站接入使用 Cloudflare 的架构分享 - 博客文章 - 任霏的个人博客网站 在 Ubuntu 上的 Nginx 高并发配置实践 - 博客文章 - 任霏的个人博客网站 技术分析黑客敲诈勒索站长的新手法百度对此也无能为力 - 博客文章 - 任霏的个人博客网站 百度站长平台快速收录权限和sitemap提交权限被全部收回 - 博客文章 - 任霏的个人博客网站 极狐 GitLab 免费时代结束不升级付费账号将禁止登陆 - 博客文章 - 任霏的个人博客网站 免费.ml域名10年委托合同到期被马里共和国收回域名经营权 - 博客文章 - 任霏的个人博客网站 从极狐Gitlab看各种中间件技术选型 - 博客文章 - 任霏的个人博客网站 时隔十年首次收到 Google AdSense 的付款 - 博客文章 - 任霏的个人博客网站 ga域名被加蓬共和国从Freenom公司手中收回域名经营权 - 博客文章 - 任霏的个人博客网站 Freenom 被 Meta(Facebook) 起诉导致暂停 .tk/.ga/.ml/.cf/.gq 等新域名注册 - 博客文章 - 任霏的个人博客网站 生花妙笔信手来 – 基于 Amazon SageMaker 使用 Grounded-SAM 加速电商广告素材生成 [1] - 博客文章 - 任霏的个人博客网站 github.renfei.net 不再完整代理 Github 页面改为代理指定文件 - 博客文章 - 任霏的个人博客网站 优雅的源代码管理(三):本地优雅的使用 Git Rebase 变基 - 博客文章 - 任霏的个人博客网站 优雅的源代码管理(二):Git 的工作原理 - 博客文章 - 任霏的个人博客网站 优雅的源代码管理(一):版本控制系统 VCS(Version Control System)与软件配置管理 SCM(Software Configuration Management) - 博客文章 - 任霏的个人博客网站 ChatGPT 开发商 OpenAI 买下极品域名 AI.com - 博客文章 - 任霏的个人博客网站 火爆的 AI 人工智能 ChatGPT 国内注册教程、使用方式和收费标准 - 博客文章 - 任霏的个人博客网站 解决 SpringCloud 中 bootstrap.yml 不识别 @activatedProperties@ 参数 - 博客文章 - 任霏的个人博客网站 阿里云香港可用区C发生史诗级故障 - 博客文章 - 任霏的个人博客网站 国产统信UOS服务器操作系统V20提供免费使用授权 开源站长推送工具效果评测推荐(百度/必应/谷歌) 获取公网IP服务「ip.renfei.net」升级增加地理定位数据字段公示
Cron表达式书写教程搞定Linux、Spring、Quartz的定时任务 - 博客文章 - 任霏的个人博客网站
任霏 · 2023-01-09 · via 任霏博客

Cron表达式是什么我想能看到这篇博文的同学已经知道是用来干什么的了,一般我们在Linux、Spring、Quartz中进行定时任务设置的时候需要写Cron表达式来设置任务执行的周期。cron的读音是英 [‘krɔ:n]/美 [‘krɒn],类似中文克龙的读音。Cron 类型Cron表达式是一个字符串,包含五个到七个由空格分隔的字段,Linux、Spring、Quartz 并不同,后面我们分开讨论,先在这里介绍比较通用的全部情况,如果你测试自己写的对不对,我也提供了:Cron在线测试工具。用空格分隔的每个域可能使用数字、,、-、*、/、?、L、W、#这些代号来表示不同的含义,具体含义如下:

  • 数字:具体的时间点
  • ,:表示列出枚举值值,其实就是或的意思,例如 1,3 就是 1或3 的时候
  • -:表示范围,例如 1-3 就是 1到3 的意思
  • *:表示匹配该域的任意值,意思就是随便一个数
  • /:表示数值的增量,其实就是间隔,例如在分域写上 0/5 表示从0分开始,每隔5分钟
  • ?:只能用在 Day of Month 和 Day of Week两个域,也是任意值的意思,例如想在每月的20日触发,不管20日是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会触发
  • L:表示最后,只能出现在 Day of Week 和 Day of Month 域,如果在 Day of Week 域使用5L,意味着在最后的一个星期四触发
  • W:表示有效工作日(周一到周五),只能出现在 Day of Month 域,例如:使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发,如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发
  • #:用于确定每个月第几个星期几,只能出现在 Day of Week 域。例如在4#2,表示某月的第二个星期三

上面提到了各种域,因为每个系统并不一样,所以下面分开介绍。Linux(crontab)在 Linux 中是 5 个域,分别是:Minutes、Hours、Day of Month、Month、Day of Week,五个域,意思是分别是:分钟、小时、天、月、周。根据上面的表示方法,我们尝试造一个:18点到23点,每到0分和30分时执行的任务表达式,就是 0,30 18-23 * * *,解析就是:0,30代表分钟为0或者30,18-23代表小时18至23,其他星号代表任意匹配。Java(Spring)在 Spring 框架中,也为我们提供了 @Scheduled 的定时任务能力,它有 6 个域,分别是:Second、Minutes、Hours、Day of Month、Month、Day of Week,六个域,意思是分别是:秒、分钟、小时、天、月、周。跟上面的 Linux 一样,只不过增加了秒的字段,精确到了秒,根据上面的表示方法,我们尝试造一个:每个月28日至31日18点整执行的任务表达式,就是 0 0 18 28-31 * ?,解析就是:第一个 0 代表 0秒,第二个 0 代表 0分,18 代表18点,28-31 代表每个月28到31日,星号代表任意月份,问号代表任意周几。Quartz 任务调度框架在 Quartz 任务调度框架中,Cron表达式在 Spring 的基础上再增加一个字段,它有 7 个域,分别是:Second、Minutes、Hours、Day of Month、Month、Day of Week、Year[optional],六个域,意思是分别是:秒、分钟、小时、天、月、周、年(可选)。Quartz 是比较专业的任务调度框架增加了一个年份的域,但这是可选的,可以不写,也就是说你用前 6 个域也是没问题的,我们一般忽略最后的年份域不写,但如果要在具体年份触发,也可以使用。我们再练习一个:在每个月最后一天18点整触发,这个比较常用吧,月底最后一天,就是 0 0 18 L * ?,解析是第一个 0 代表 0秒,第二个 0 代表 0分,18 代表18点,L在 Day of Month 域上就是最后一天,星号代表任意月份,问号代表任意周几。总结只要理解各个域是什么,是不是很简单,我感觉比正则表达式好学多了,赶快去:Cron在线测试工具 里面练习探索一下吧。