CRON表达式是一个字符串,包含五个到七个由空格分隔的字段(每种软件不一样),表示一组时间,通常作为执行某个程序的时间表。

  1. 调度精度: Linux的cron调度精度为分钟级别,最小粒度为分钟,而Java中的Quartz框架可以支持秒级别的调用。
  2. 灵活性: Quartz框架提供了丰富的调度功能,可以支持一些复杂的调度需求,比如支持日历调度、集群调度等功能,而Linux的cron相对简单,只能支持基本的时间调度。
  3. 可视化管理: Quarz框架提供了可视化的管理界面,可以方便地查看和管理定时任务,而Linux的cron需要通过命令行来管理定时任务,相对不够直观。

Linux

分  时  日  月  周
* * * * *
- - - - -
| | | | |
| | | | +----- day of week (0 - 7) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | +---------- month (1 - 12) OR jan,feb,mar,apr ...
| | +--------------- day of month (1 - 31)
| +-------------------- hour (0 - 23)
+------------------------- minute (0 - 59)

以上字段详解

字段 是否必填 允许值 允许特殊字符
Minutes 0–59 *,-
Hours 0–23 *,-
Day of month 1–31 *,-?LW
Month 1–12 or JAN–DEC *,-
Day of week 0–7 or SUN–SAT *,-?L#
Year 1970–2099 *,-

Java

秒  分  时  日  月  周
* * * * * *
- - - - - -
| | | | | |
| | | | | +----- day of week (0 - 7) (Sunday=0 or 7) OR 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)

以上字段详解

字段 是否必填 允许值 允许的特殊字符
秒(Seconds) 0~59的整数 , - * / 四个字符
分(Minutes) 0~59的整数 , - * / 四个字符
小时(Hours) 0~23的整数 , - * / 四个字符
日期(DayofMonth) 1~31的整数(但是你需要考虑你月的天数) ,- * ? / L W C 八个字符
月份(Month) 1~12的整数或者 JAN-DEC , - * / 四个字符
星期(DayofWeek) 1~7的整数或者 SUN-SAT (1=SUN) , - * ? / L C # 八个字符
年(Year) 1970~2099 , - * / 四个字符

字符说明

特殊字符 含义
* 表示匹配该域的任意值。假如在Minutes域使用*, 即表示每分钟都会触发事件
? 只能用在DayofMonth和DayofWeek两个域。它也匹配域的任意值,但实际不会。因为DayofMonth和DayofWeek会相互影响。例如想在每月的20日触发调度,不管20日到底是星期几,则只能使用如下写法: 13 13 15 20 * ?, 其中最后一位只能用?,而不能使用*,如果使用*表示不管星期几都会触发,实际上并不是这样
- 表示范围。例如在Minutes域使用5-20,表示从5分到20分钟每分钟触发一次
/ 表示起始时间开始触发,然后每隔固定时间触发一次。例如在Minutes域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次
, 表示列出枚举值。例如:在Minutes域使用5,20,则意味着在5和20分每分钟触发一次
L 表示最后,只能出现在DayofWeek和DayofMonth域。如果在DayofWeek域使用5L,意味着在最后的一个星期四触发
W 表示有效工作日(周一到周五),只能出现在DayofMonth域,系统将在离指定日期的最近的有效工作日触发事件。例如:在 DayofMonth使用5W,如果5日是星期六,则将在最近的工作日:星期五,即4日触发。如果5日是星期天,则在6日(周一)触发;如果5日在星期一到星期五中的一天,则就在5日触发。另外一点,W的最近寻找不会跨过月份
LW 这两个字符可以连用,表示在某个月最后一个工作日,即最后一个星期五
# 用于确定每个月第几个星期几,只能出现在DayofMonth域。例如在4#2,表示某月的第二个星期三

Q:CRON表达式,Linux和Java的不同写法的更多相关文章

  1. Quartz cron 表达式(linux 定时器,java 定时任务,spring task定时任务)

    原文地址:https://blog.csdn.net/feng27156/article/details/39293403 Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但 ...

  2. Java EE学习——Quartz的Cron表达式

    经历过低谷后,还是要好好学习,越失落会越来越落后. 今天写一下Cron表达式的用法,虽然是之前自己写的,也过了挺长一段时间,这次就拿出来作为回顾吧. Cron表达式是Quartz的精髓(个人觉得),比 ...

  3. Java Spring cron表达式使用详解

    Java Spring cron表达式使用详解   By:授客 QQ:1033553122 语法格式 Seconds Minutes Hours DayofMonth Month DayofWeek ...

  4. (转)Java任务调度框架Quartz入门教程指南(四)Quartz任务调度框架之触发器精讲SimpleTrigger和CronTrigger、最详细的Cron表达式范例

    http://blog.csdn.net/zixiao217/article/details/53075009 Quartz的主要接口类是Schedule.Job.Trigger,而触发器Trigge ...

  5. Linux - cron - cron 表达式

    概述 之前 cron 的补充 这次介绍下 表达式 背景 之前有说过 cron 这次说下 表达式 1. 准备 环境 os centos7 2. 模板文件 文件 位置 /etc/crontab 作用 系统 ...

  6. QuartZ Cron表达式在java定时框架中的应用

    CronTrigger CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表. CronT ...

  7. JAVA Schedule的Cron表达式

    spring中用到的定时任务,一般用到的有Timer()和Schedule Cron表达式一般是程序的定时任务中所要起的..我们用的springboot中的@Schedule中,启动类中添加enabl ...

  8. java生成cron表达式

    bean类: package com.cst.klocwork.service.cron; public class TaskScheduleModel { /** * 所选作业类型: * 1 -&g ...

  9. Quartz学习-- quartz基本介绍和 Cron表达式

    Quartz学习 一. Quartz 大致简介 Quartz 是完全由 java 开发的一个开源的任务日程管理系统 ​任务日程管理系统 换句话说就是: ​ 一个预先确定的日程时间到达时,负责执行任务的 ...

  10. cron,linux定时脚本

    Linux的cron和crontab Cron定时执行工具详解 Linux下的crontab定时执行任务命令详解 Linux上启动Cron任务 [linux]解析crontab cron表达式详解 c ...

随机推荐

  1. 同步工具之Vector

    官网: https://vector.dev/ 用于构建可观察性管道的轻量级.超快速工具 [安装] curl --proto '=https' --tlsv1.2 -sSf https://sh.ve ...

  2. qnap nas 下的 nasconfig_fs.img.tgz 及相关的一点记录

    QNAP NAS 已安装EntWare(先前的Optware已废弃,不适用),可以使用 opkg 命令安装软件包(如想利用arp命令查看局域网的IP地址及对应物理网卡地址,可使用opkg instal ...

  3. MySQL底层概述—9.ACID与事务

    大纲 1.ACID之原子性 2.ACID之持久性 3.ACID之隔离性 4.ACID之一致性 5.ACID的关系 6.事务控制演进之排队 7.事务控制演进之排它锁 8.事务控制演进之读写锁 9.事务控 ...

  4. uni-app 使用笔记

    1.前言 也不知道是我水平菜还是文档太烂,这个框架使用的过程中踩了无数的坑,屡次想砸键盘,最后贫穷让我平复了心情.为了纪念这段操蛋的日子,我决定把这些坑都记录下来. 2.数据请求 在实际的项目中,数据 ...

  5. canvas(三)绘制矩形

    1.绘制矩形轨迹 相关语法:ctx.rect(x,y,width,height),根据传入的参数(起始坐标和宽高)用来绘制一个矩形轨迹 注意:ctx.rect()和ctx.lineTo()绘制的都是轨 ...

  6. Swagger 调试,我不想再复制粘贴token啦~

    作为后端开发,进行Web Api 调试,除了使用 Postman, Apifox 等 Web Api 调试工具之外,我想使用Swagger进行调试应该是更方便,更常用的方式了吧. 那么在需要 toke ...

  7. CoFile 企业云盘大焕新啦!

    一.域名升级,更好记 俗话说的好,好记性不如字数少 cofile.net 指尖一敲,快乐来到 别拦着我,我就要用 CoFile 企业云盘 二.架构优化,不止更快 底层优化,加载提速,更快响应,加倍安全 ...

  8. .NET 9 New features-JSON序列化

    .NET 9已经发布有一段时间了,近期整理一下.NET 9的新特性,今天重点分享.NET 9 JSON序列化方面的改进. 先引用官方的说明: 在 System.Text.Json 中,.NET 9 提 ...

  9. JVM简介—1.Java内存区域

    大纲 1.运行时数据区的介绍 2.运行时数据区各区域的作用 3.各个版本内存区域的变化 4.直接内存的使用和作用 5.站在线程的角度看Java内存区域 6.深入分析堆和栈的区别 7.方法的出入栈和栈上 ...

  10. 2024年1月Java项目开发指南15:vue3+AntDesignVue 设计页面

    考虑到有的同学对vue3不熟悉,因此,我把ControlView.vue这个页面清空,我们从0开始写. <template style="width: 100%"> & ...