首页 > 其他分享 >Cron表达式简明教程

Cron表达式简明教程

时间:2024-05-29 17:56:58浏览次数:19  
标签:星期 教程 59 字段 Cron UNIX 表达式

Cron表达式简明教程

Cron表达式的起源可以追溯到1970年代早期的UNIX系统。以下是关于Cron表达式起源的详细介绍:

起源

  1. 时间背景:Cron表达式最初是在1970年代早期的UNIX系统中创建的。
  2. 设计者:虽然Cron表达式的具体设计者没有明确的记录,但它与UNIX系统的整体设计和开发密切相关。UNIX系统是由贝尔实验室的Ken Thompson、Dennis Ritchie等人开发的,而Cron作为UNIX系统的一部分,其设计思想也反映了UNIX系统简洁、灵活和模块化的设计理念。

作用与特点

  1. 目的:Cron表达式的目的是为了在多用户的UNIX环境中,通过预定任务的执行时间来减轻系统资源的压力。它允许用户通过简单的文本文件(通常称为crontab文件)来存储和管理任务的调度信息。
  2. 应用:Cron表达式在计算机操作系统和应用程序中得到了广泛应用。在操作系统中,它可以用于控制定期执行系统维护任务,如清理日志、备份数据等。在应用程序中,Cron表达式可以用于定时执行一些特定的业务逻辑,如定时发送邮件、生成报告、数据分析等。

格式与语法

Cron表达式通常包含5个或6个时间字段,从左到右分别表示分钟、小时、日期、月份和星期几(可选的秒字段在某些系统中也被支持)。每个字段都可以使用数字、星号、逗号、减号、正斜杠和问号等特殊字符来指定值或范围。

  1. 字段组成

    • 秒(Seconds):0-59的整数,表示秒数。
    • 分钟(Minutes):0-59的整数,表示分钟数。
    • 小时(Hours):0-23的整数,表示小时数(24小时制)。
    • 日期(Day of Month):1-31的整数,表示一个月中的日期。
    • 月份(Month):1-12的整数,或者使用月份的英文缩写(如JAN、FEB等)。
    • 星期(Day of Week):0-7的整数,其中0和7都表示星期日,或者使用星期的英文缩写(如SUN、MON等)。
    • 年(可选,Year):在某些Cron表达式中,可能包含年份字段,用于指定具体的年份。
  2. 特殊字符

    • *:表示该字段的所有可能值。
    • ,:用于指定多个值。
    • -:用于指定一个范围。
    • /:指定数值的增量。
    • ?:在日期和星期字段中,用于表示不指定值。
    • L:在日期字段中,表示当月的最后一天;在星期字段中,表示某月的最后一个星期X。
    • W:在日期字段中,表示离指定日期最近的工作日(周一至周五)。
    • #:在星期字段中,用于指定一个月的第几个星期X。
  3. 使用示例

    • 每天中午12点执行:0 0 12 * * ?
    • 每周一、三、五的上午10点执行:0 0 10 * * 1,3,5
    • 每月最后一天下午5点执行:0 0 17 L * ?
    • 每月第二个星期日的凌晨1点执行:0 0 1 * * 2#2

Cron表达式在不同的系统和应用中可能有不同的实现和变种,这主要是基于特定系统或应用的需求和特性。以下是一些常见环境中Cron表达式的不同实现和变种:

  1. UNIX Cron(Crontab)
    • 这是最原始的Cron实现,它使用一个简单的文本文件(crontab文件)来定义定时任务。
    • Crontab文件中的每一行代表一个定时任务,其格式包括时间字段(分钟、小时、日期、月份、星期)和要执行的命令或脚本。
    • Cron服务会在指定的时间自动执行这些任务。
┌──────────── [可选] 秒 (0 - 59)
| ┌────────── 分钟 (0 - 59)
| | ┌──────── 小时 (0 - 23)
| | | ┌────── 天数 (1 - 31)
| | | | ┌──── 月份 (1 - 12) OR jan,feb,mar,apr ...
| | | | | ┌── 星期几 (0 - 6, 星期天 = 0) OR sun,mon ...
| | | | | |
* * * * * *
  1. Quartz Scheduler
    • Quartz是一个开源的作业调度库,用于在Java应用程序中进行任务调度。
    • Quartz中的Cron表达式比UNIX Cron更为复杂,因为它支持秒字段,并且提供了更多的选项和灵活性。
    • Quartz的Cron表达式格式通常为:秒 分 时 日 月 周 年(可选)
*    *    *    *    *    *    *
-    -    -    -    -    -    -
|    |    |    |    |    |    |
|    |    |    |    |    |    + year [optional]
|    |    |    |    |    +----- day of week (1 - 7) sun,mon,tue,wed,thu,fri,sat
|    |    |    |    +---------- month (1 - 12) OR jan,feb,mar,apr ...
|    |    |    +--------------- day of month (1 - 31)
|    |    +-------------------- hour (0 - 23)
|    +------------------------- min (0 - 59)
+------------------------------ second (0 - 59)

标签:星期,教程,59,字段,Cron,UNIX,表达式
From: https://www.cnblogs.com/Chendaqian/p/18220794

相关文章

  • windows10安装centos7双系统详细教程
    Centos7系统使用了很长的时间,但是要不是在虚拟机环境下使用,要不就直接安装centos7系统,没有尝试过安装双系统使用,最近虚拟机运行起来电脑弄的很卡,索性就直接安装双系统使用,工作娱乐都能使用。下面开始介绍安装双系统的详细流程。1.安装环境硬件设备:戴尔7460笔记本,8G以上的U盘一个......
  • Excel 2016数据处理与分析应用教程微课版苏林萍课后习题答案解析
    Excel2016数据处理与分析应用教程(微课版)主 编: 苏林萍ISBN: 9787115510204出版社: 人民邮电出版社上传者: .Twinkle《Excel2016数据处理与分析应用教程(微课版)》是一本非常适合大学生学习Excel2016的教材。书中内容详实,讲解透彻,对于初学者来说非常友好。通过学习这本......
  • 最新ChatGPT网站源码+Midjourney-AI绘画系统源码,详细图文搭建教程/支持GPT-4o文档分析
    一、前言SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型+国内AI全模型。支持GPT-4o大模型、文档分析、识图图片理解、GPTs应用、GPT语音对话、联网提问、GPT-4全模型、DALL-E3文生图、GPT4-All联网搜索模型、思维导图、会员......
  • Java语言,MySQL数据库;SSM 心理咨询预约管理系统19086(免费领源码)计算机毕业设计项目推荐
    目 录摘要1绪论1.1背景及意义1.2研究现状1.3ssm框架介绍1.4论文结构与章节安排2 心理咨询预约管理系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能......
  • 基于最新发表的端到端实时目标检测模型YOLOv10开发构建自己的个性化目标检测系统从零
    在我前面的系列博文中,对于目标检测系列的任务写了很多超详细的教程,目的是能够读完文章即可实现自己完整地去开发构建自己的目标检测系统,感兴趣的话可以自行移步阅读:《基于官方YOLOv4-u5【yolov5风格实现】开发构建目标检测模型超详细实战教程【以自建缺陷检测数据集为例】》......
  • MySQL安装教程(详细)
    文章目录一、安装准备1.1mysql数据库下载1.2数据库运行环境下载二、安装步骤2.1开始安装2.2选择安装类型2.3选择功能2.4检测安装环境2.5功能安装2.6功能安装完成,点击next2.7产品配置,点击next2.8网络通信配置2.9帐户设置(很重要)2.10数据库实例名设置,默认next......
  • 批量重命名工具分享,附上详细文件批量改名教程(2024年全新版)
    怎么批量重命名文件?作为办公一族难免会遇到一些文件管理难题,面对大量的文件需要进行重命名操作,你还在一个一个地重复操作吗?这样不仅耗费时间还大大地影响工作效率,那有什么简单快速的方法可以批量文件改名吗?答案是当然是有的!今天小编就给大家分享几个亲测好用的批量重命名工具,实......
  • 湘潭大学软件工程专业oracle-sqlplus安装教程
    前言笔者在网上找了一些教程,但是没有装好,或者不知道啥原因,反正就是登不进去老师要求的系统,连接不上服务器,非常苦恼,请教了一下同学,终于弄好了,本文希望能帮助到和我一样有相同困扰的同学下载压缩包首先是下载安装包,按照我的理解,应该是下载下面这个压缩包就行了先打开老师......
  • 28. 【Java教程】Scanner 类
    一直以来,我们都使用System.out.println()方法向屏幕打印内容,那么如何接收输入的内容呢?本小节所学习的Scanner类就可以实现对输入内容的接收。在本小节,我们将学习Scanner类的定义,如何使用Scanner类以及其常用方法,在学完这些基础知识后,我们会在最后学习一个比较有趣的实例程序。......
  • 521源码-免费源码下载-免费学习网站教程-宝塔面板ssl网站证书到期后弹出无法续期错误
    宝塔面板如果从老版本升级到8.10后,当点站证书过期续期时会弹出错误:排查文件是找不到问题出在哪里,导致续期错误。解决办法:通过摸索,最简单的就是删除站点,注意:只是删除,不是把数据可和网站源码删除。然后从新建立网站,指定目录,在申请证书就OK了!更多网站源码学习教程,请点击......