`
bluesky329
  • 浏览: 832 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Quartz Cron 表达式(时间格式的写法)

阅读更多
Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别。区别之一就是 Quartz 的格式向下支持到秒级别的计划,而 UNIX cron 计划仅支持至分钟级。许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异。

在 UNIX cron 里,要执行的作业(或者说命令)是存放在 cron 表达式中的,在第六个域位置上。Quartz 用 cron 表达式存放执行计划。引用了 cron 表达式的 CronTrigger 在计划的时间里会与 job 关联上。

另一个与 UNIX cron 表达式的不同点是在表达式中支持域的数目。UNIX 给出五个域(分、时、日、月和周),Quartz 提供七个域。表 5.1 列出了 Quartz cron 表达式支持的七个域。

表 5.1. Quartz Cron 表达式支持到七个域
名称 是否必须 允许值 特殊字符
秒 是 0-59 , - * /
分 是 0-59 , - * /
时 是 0-23 , - * /
日 是 1-31 , - * ? / L W C
月 是 1-12 或 JAN-DEC , - * /
周 是 1-7 或 SUN-SAT , - * ? / L C #
年 否 空 或 1970-2099 , - * /
月份和星期的名称是不区分大小写的。FRI 和 fri 是一样的。

域之间有空格分隔,这和 UNIX cron 一样。无可争辩的,我们能写的最简单的表达式看起来就是这个了:

* * * ? * *

这个表达会每秒钟(每分种的、每小时的、每天的)激发一个部署的 job。

·理解特殊字符

同 UNIX cron 一样,Quartz cron 表达式支持用特殊字符来创建更为复杂的执行计划。然而,Quartz 在特殊字符的支持上比标准 UNIX cron 表达式更丰富了。

* 星号

使用星号(*) 指示着你想在这个域上包含所有合法的值。例如,在月份域上使用星号意味着每个月都会触发这个 trigger。

表达式样例:

0 * 17 * * ?

意义:每天从下午5点到下午5:59中的每分钟激发一次 trigger。它停在下午 5:59 是因为值 17 在小时域上,在下午 6 点时,小时变为 18 了,也就不再理会这个 trigger,直到下一天的下午5点。

在你希望 trigger 在该域的所有有效值上被激发时使用 * 字符。

? 问号

? 号只能用在日和周域上,但是不能在这两个域上同时使用。你可以认为 ? 字符是 "我并不关心在该域上是什么值。" 这不同于星号,星号是指示着该域上的每一个值。? 是说不为该域指定值。

不能同时这两个域上指定值的理由是难以解释甚至是难以理解的。基本上,假定同时指定值的话,意义就会变得含混不清了:考虑一下,如果一个表达式在日域上有值11,同时在周域上指定了 WED。那么是要 trigger 仅在每个月的11号,且正好又是星期三那天被激发?还是在每个星期三的11号被激发呢?要去除这种不明确性的办法就是不能同时在这两个域上指定值。

只要记住,假如你为这两域的其中一个指定了值,那就必须在另一个字值上放一个 ?。

表达式样例:

0 10,44 14 ? 3 WEB

意义:在三月中的每个星期三的下午 2:10 和 下午 2:44 被触发。

, 逗号

逗号 (,) 是用来在给某个域上指定一个值列表的。例如,使用值 0,15,30,45 在秒域上意味着每15秒触发一个 trigger。

表达式样例:

0 0,15,30,45 * * * ?

意义:每刻钟触发一次 trigger。

/ 斜杠

斜杠 (/) 是用于时间表的递增的。我们刚刚用了逗号来表示每15分钟的递增,但是我们也能写成这样 0/15。

表达式样例:

0/15 0/30 * * * ?

意义:在整点和半点时每15秒触发 trigger。

- 中划线

中划线 (-) 用于指定一个范围。例如,在小时域上的 3-8 意味着 "3,4,5,6,7 和 8 点。" 域的值不允许回卷,所以像 50-10 这样的值是不允许的。

表达式样例:

0 45 3-8 ? * *

意义:在上午的3点至上午的8点的45分时触发 trigger。

L 字母

L 说明了某域上允许的最后一个值。它仅被日和周域支持。当用在日域上,表示的是在月域上指定的月份的最后一天。例如,当月域上指定了 JAN 时,在日域上的 L 会促使 trigger 在1月31号被触发。假如月域上是 SEP,那么 L 会预示着在9月30号触发。换句话说,就是不管指定了哪个月,都是在相应月份的时最后一天触发 trigger。

表达式 0 0 8 L * ? 意义是在每个月最后一天的上午 8:00 触发 trigger。在月域上的 * 说明是 "每个月"。

当 L 字母用于周域上,指示着周的最后一天,就是星期六 (或者数字7)。所以如果你需要在每个月的最后一个星期六下午的 11:59 触发 trigger,你可以用这样的表达式 0 59 23 ? * L。

当使用于周域上,你可以用一个数字与 L 连起来表示月份的最后一个星期 X。例如,表达式 0 0 12 ? * 2L 说的是在每个月的最后一个星期一触发 trigger。

不要让范围和列表值与 L 连用

虽然你能用星期数(1-7)与 L 连用,但是不允许你用一个范围值和列表值与 L 连用。这会产生不可预知的结果。
W 字母

W 字符代表着平日 (Mon-Fri),并且仅能用于日域中。它用来指定离指定日的最近的一个平日。大部分的商业处理都是基于工作周的,所以 W 字符可能是非常重要的。例如,日域中的 15W 意味着 "离该月15号的最近一个平日。" 假如15号是星期六,那么 trigger 会在14号(星期四)触发,因为距15号最近的是星期一,这个例子中也会是17号(译者Unmi注:不会在17号触发的,如果是15W,可能会是在14号(15号是星期六)或者15号(15号是星期天)触发,也就是只能出现在邻近的一天,如果15号当天为平日直接就会当日执行)。W 只能用在指定的日域为单天,不能是范围或列表值。

# 井号

# 字符仅能用于周域中。它用于指定月份中的第几周的哪一天。例如,如果你指定周域的值为 6#3,它意思是某月的第三个周五 (6=星期五,#3意味着月份中的第三周)。另一个例子 2#1 意思是某月的第一个星期一 (2=星期一,#1意味着月份中的第一周)。注意,假如你指定 #5,然而月份中没有第 5 周,那么该月不会触发。

转自:http://blog.csdn.net/liulin_good/article/details/5995192
分享到:
评论

相关推荐

    Quartz Cron表达式生成器

    Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month DayofWeek Year或 Seconds Minutes Hours DayofMonth ...

    quartz 实现按天、按周、按月定时任务的简单demo

    Cron 表达式是 Quartz 使用的一种时间表达方式,它可以精确到秒。例如,“0 0 0 * * ?”表示每天的凌晨0点0分0秒执行。如果想按周执行,可以设置如“0 0 0 * * 1”(每周一的0点0分0秒),按月执行则可以设置“0 0 0...

    Quartz-Job-Scheduling-Framework-中文版-V0.9.1.zip

    内容提要:Cron 表达式 Cookbook,列举了各种 Cron 表达式的写法和意义,有助于更好的理解 Cron 表达式;还用了 TriggerUtils 创建了一个即刻触发的 Trigger。 第六章. Job 存储和持久化 (第一部分) 内容提要:介绍...

    spring定时任务

    你可以设置多个参数来控制任务的执行频率,如`fixedRate`(每隔固定时间执行)、`fixedDelay`(每次执行后隔固定时间执行)以及`cron`表达式(基于cron表达式的定时执行)。 2. **TaskScheduler**:这是一个接口,...

    基于S7-200 PLC与MCGS组态的洗衣机控制系统设计与实现

    内容概要:本文详细介绍了利用西门子S7-200 PLC和MCGS组态软件构建洗衣机控制系统的全过程。首先阐述了IO分配规则,明确各输入输出点的功能,如水位检测、温度测量、电机控制等。接着展示了梯形图编程的具体方法,解释了如何通过梯形图实现洗衣机的基本操作流程,包括启动、停止、水位控制、正反转洗涤、排水和脱水等功能。此外,文中还讨论了接线图的设计要点,强调了硬件连接的安全性和可靠性。最后,介绍了MCGS组态画面的设计,包括动态效果展示、报警机制以及人机交互界面的优化。 适合人群:对PLC编程和工业自动化感兴趣的工程师和技术人员,尤其是希望深入了解S7-200 PLC和MCGS组态软件的实际应用者。 使用场景及目标:适用于需要设计和实施小型家电或类似设备自动化控制系统的场合。目标是帮助读者掌握PLC编程技巧,理解工业自动化控制系统的构建过程,提高实际项目开发能力。 其他说明:文中提供了丰富的调试经验和常见问题解决方案,有助于读者在实践中少走弯路。同时,通过具体的案例分析,使理论知识更加贴近实际应用。

    COMSOL中基于保角变换的自聚焦光束与Talbot效应的光学仿真研究

    内容概要:本文详细介绍了如何利用COMSOL进行光学仿真,重点探讨了保角变换在操控光路方面的应用,特别是自聚焦光束和Talbot效应的建模。文中首先解释了保角变换的基本概念及其物理意义,然后通过具体实例展示了如何在COMSOL中设置保角变换、定义材料参数以及配置边界条件。对于自聚焦光束,作者强调了非线性材料模块的应用,特别是在处理强光引起的折射率变化时的关键步骤。而对于Talbot效应,则着重讨论了周期性边界条件的设置和后处理分析方法。此外,文章还分享了一些实用技巧,如参数化扫描、网格优化和MATLAB联动分析等。 适合人群:具有一定光学仿真基础的研究人员和技术人员,尤其是对COMSOL软件有一定了解并希望深入探索非线性光学现象的用户。 使用场景及目标:① 使用COMSOL进行自聚焦光束和Talbot效应的建模与仿真;② 掌握保角变换在光学仿真中的应用技巧;③ 提升对非线性光学现象的理解和仿真能力。 其他说明:本文不仅提供了详细的建模指导,还包括了许多实用的调试技巧和注意事项,帮助读者更好地理解和应用相关技术。

    产品PRD需求文档模板

    产品PRD需求文档模板

    COMSOL模拟针尖刺穿表皮细胞:探究电穿孔技术中的电场与物质传输机制

    内容概要:本文详细介绍了使用COMSOL软件进行针尖刺穿表皮细胞的数值模拟,探讨了电穿孔技术中电场分布与物质传输的关系。首先,通过参数化建模构建了圆锥形针尖和细胞结构,确保针尖能够有效穿透细胞膜。然后,设置了多物理场耦合,包括电流传导和稀物质传递,使电场和浓度场相互作用。文中特别强调了细胞膜的薄层边界条件和电场增强扩散系数的设定,以及如何通过边界条件模拟电穿孔过程。此外,还讨论了求解器配置、网格划分和结果后处理方法,展示了电场流线和浓度云图的可视化结果。最终,验证了模型的可靠性,并提出了进一步的研究方向,如加入温度场和针尖振动参数。 适合人群:从事生物医学工程、电穿孔技术和药物递送系统研究的专业人士,尤其是有一定COMSOL使用经验和数值模拟基础的研究人员。 使用场景及目标:适用于希望深入了解电穿孔技术中电场与物质传输机制的研究人员,帮助他们优化微针给药系统的参数设计,提高药物递送效率。 其他说明:本文提供了详细的建模步骤和技术细节,有助于读者快速掌握COMSOL在生物电穿孔领域的应用。同时,文中提到的一些技巧和注意事项可以避免常见的数值模拟错误,提高模拟精度。

    MATLAB实现冷热电气多能互补微能源网的鲁棒优化调度模型

    内容概要:本文详细探讨了基于MATLAB的冷热电气多能互补微能源网的鲁棒优化调度模型。首先介绍了多能耦合元件(如风电、光伏、P2G、燃气轮机等)的运行特性模型,展示了如何通过MATLAB代码模拟这些元件的实际运行情况。接着阐述了电、热、冷、气四者的稳态能流模型及其相互关系,特别是热电联产过程中能量的转化和分配。核心部分在于构建了考虑经济成本和碳排放的优化调度模型,利用MATLAB优化工具箱求解多目标优化问题,确保系统在经济性和环保性之间达到最佳平衡。此外,文中还讨论了处理风光出力预测误差的方法,采用了鲁棒优化策略应对不确定性,并通过实例验证了模型的有效性。 适合人群:从事能源系统研究、优化调度领域的科研人员和技术开发者,尤其是熟悉MATLAB编程并关注低碳发展的专业人士。 使用场景及目标:适用于希望深入了解综合能源系统优化调度机制的研究者,旨在帮助他们掌握如何在MATLAB环境下构建和求解复杂的多能互补优化调度模型,以实现节能减排和经济效益的最大化。 其他说明:文章不仅提供了详细的理论推导和代码实现,还分享了许多实践经验,如非线性约束处理、多能流耦合约束的建模技巧等,对于实际工程应用具有重要指导意义。

    STM32 Nucleo-64 开发板用户手册

    STM32 Nucleo-64 开发板用户手册

    chromedriver-mac-x64-136.0.7098.0(Canary).zip

    chromedriver-mac-x64-136.0.7098.0(Canary).zip

    综合能源系统中电、热、冷、气的分时电价与储能优化调度

    内容概要:本文详细探讨了综合能源系统中电、热、冷、气四种能源形式的优化调度方法,重点介绍了分时电价机制下的储能装置调度策略。通过Python代码实例展示了如何利用线性规划工具(如PuLP库)构建优化模型,实现储能装置的高效充放电管理以及多能流耦合设备的协调运作。文中不仅讨论了储能装置的充放电效率、初始电量设置等关键技术细节,还涉及了热泵、燃气锅炉、吸收式制冷机等多种设备之间的能量转换关系及其优化配置。 适合人群:从事综合能源系统研究的技术人员、能源管理系统开发者、工业自动化领域的工程师。 使用场景及目标:适用于需要降低综合能源系统运行成本的企业或机构,尤其是那些面临复杂电价政策和技术挑战的场景。目标是通过合理的调度策略,在满足各类能源需求的前提下,最大限度地减少运营成本,提高经济效益。 其他说明:文章强调了分时电价对储能调度的影响,并指出储能装置在削峰填谷方面的重要作用。此外,还提到了多时间尺度优化、设备启停成本等因素对整体优化效果的影响。

    计算机暑假实践报告.pdf

    计算机暑假实践报告.pdf

    地铁线路最短路径规划1.1版本

    帮助用户规划地铁出行路线

    光伏并网系统中虚拟同步发电机(VSG)技术的Simulink仿真与实现

    内容概要:本文详细介绍了如何在Simulink中构建和优化光伏并网系统的虚拟同步发电机(VSG)模型。首先解释了VSG的核心控制方程及其参数调节方法,强调了转动惯量(J)和阻尼系数(D)对系统稳定性的影响。接着探讨了逆变器控制部分采用的双闭环结构以及锁相环(PLL)配置,并分享了光照条件模块的设计思路。此外,还提到了谐波分析、超级电容储能模型的应用以及关键性能指标的验证方法。最后,通过对比有无VSG时的频率曲线,展示了VSG在稳定电网方面的显著效果。 适合人群:从事新能源并网研究的技术人员、电力系统工程师、高校相关专业师生。 使用场景及目标:适用于希望深入了解光伏并网系统中VSG技术原理及其实现方法的研究者和技术开发者。目标是在Simulink环境中搭建高效稳定的VSG模型,提高光伏系统的并网友好性。 其他说明:文中提供了大量实用的MATLAB/Simulink代码片段和调试技巧,帮助读者更好地理解和应用VSG技术。同时,针对可能出现的问题给出了具体的解决方案,确保模型能够顺利运行并达到预期效果。

    电力系统光伏并网概率潮流计算:MATLAB实现蒙特卡洛与半不变量法

    内容概要:本文详细介绍了如何使用MATLAB进行光伏并网后的概率潮流计算,针对光伏出力的不确定性,提出了两种主要方法:蒙特卡洛模拟和半不变量法。蒙特卡洛方法通过生成大量光伏出力场景并逐一进行潮流计算,最终统计电压分布;而半不变量法则通过对光伏出力的统计特征进行级数展开,快速计算电压的概率分布。文中还提供了具体的MATLAB代码示例,展示了如何用Beta分布建模光伏出力,并通过IEEE34节点系统进行了实例演示。此外,文章还探讨了两种方法的优劣及其应用场景,强调了Beta分布参数选择的重要性以及雅可比矩阵在线性化过程中可能出现的问题。 适合人群:从事电力系统研究和工程应用的技术人员,特别是那些对光伏并网和概率潮流计算感兴趣的读者。 使用场景及目标:适用于需要评估光伏并网对电网稳定性影响的研究人员和技术人员。具体目标包括:①掌握光伏出力不确定性的建模方法;②理解蒙特卡洛模拟和半不变量法的工作原理及其适用范围;③能够独立完成基于MATLAB的概率潮流计算。 其他说明:文章不仅提供了详细的代码实现,还给出了相关参考文献,帮助读者深入理解背后的数学原理和技术背景。同时,作者提醒了一些常见的陷阱和注意事项,确保读者能够在实践中少走弯路。

    基于MATLAB的水箱水位模糊控制系统设计与实现

    内容概要:本文介绍了利用MATLAB设计和实现单容水箱水位模糊控制系统的全过程。首先建立了水箱系统的非线性微分方程模型,解决了传统PID控制器在非线性环节容易震荡的问题。接着通过FIS Editor构建模糊推理系统,定义输入输出变量及其隶属度函数,并设置简单的模糊规则来控制水位。仿真结果显示,模糊控制相比PID控制具有更低的超调量和平滑的控制效果。此外,文中还分享了一些调试技巧和优化方法,如调整隶属度函数的重叠区域和规则权重,以及如何应对系统抗干扰性和稳定性问题。 适合人群:控制工程专业的学生、研究人员以及对模糊控制感兴趣的工程师。 使用场景及目标:适用于需要精确控制水位的工业自动化场合,特别是那些存在非线性因素的系统。目标是通过模糊控制提高系统的响应速度和稳定性,减少超调量。 其他说明:提供了完整的工程文件和详细的调试笔记,方便读者复现实验结果。同时强调了模糊控制在处理复杂非线性系统方面的优势,展示了其灵活性和实用性。

    西门子Smart200与V90伺服三轴联动控制系统的实现及调试技巧

    内容概要:本文详细介绍了西门子Smart200 PLC与V90伺服在中小型自动化设备中的三轴联动控制方案。主要内容涵盖PLC程序的核心代码解析,包括轴配置、点动功能、绝对定位指令等;HMI界面设计,如触摸屏变量绑定和交互设计;电气原理图的关键点,如抱闸控制和电源分配;以及调试经验和故障排除方法。文中还强调了详细的注释和文档管理对于后期维护的重要性。 适合人群:从事自动化控制领域的工程师和技术人员,尤其是对西门子Smart200和V90伺服系统有一定了解并希望深入掌握其应用的人群。 使用场景及目标:适用于中小型自动化设备的设计、安装和调试,帮助工程师快速理解和实施三轴联动控制方案,提高设备的稳定性和精度。 其他说明:文中提供了多个实际案例和调试技巧,有助于避免常见错误,提升项目的成功率。此外,还分享了一些实用的经验和最佳实践,如合理的IO表设计和详细的程序注释。

    强化学习、单Agent和多Agent强化学习算法的实现 matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    微电网并离网下垂控制Simulink模型解析及其应用

    内容概要:本文详细介绍了微电网并离网下垂控制的Simulink模型,涵盖虚拟同步机、模式切换逻辑和负载扰动测试三大核心模块。通过具体代码片段展示了下垂控制的关键算法,如频率和电压下垂特性、模式切换条件判断以及PI参数配置。文中还分享了多个调试技巧,如仿真步长设置、参数优化方法和常见问题解决办法。此外,模型中加入了预同步模块和负荷电流前馈补偿,确保了并网/离网切换时的平稳性和快速响应。 适合人群:对微电网控制技术和Simulink建模有一定基础的研究人员和技术人员。 使用场景及目标:适用于研究和开发微电网控制系统,特别是关注并网和离网模式之间的无缝切换及频率电压自主调节的应用场景。目标是帮助读者理解和掌握下垂控制的具体实现方法,提高系统的稳定性和响应速度。 其他说明:模型文件建议使用Matlab R2018b及以上版本打开,仿真步长设定为50μs到100μs之间,以获得最佳效果。文中提到的多个参数和配置均经过大量仿真实验验证,提供了宝贵的实践经验。

Global site tag (gtag.js) - Google Analytics