关于cron表达式(来自网络):
Cron 表达式包括以下 7 个字段:
秒
分
小时
月内日期
月
周内日期
年(可选字段)
特殊字符
Cron 触发器利用一系列特殊字符,如下所示:
反斜线(/)字符表示增量值。例如,在秒字段中“5/15”代表从第 5 秒开始,每 15 秒一次。
问号(?)字符和字母 L 字符只有在月内日期和周内日期字段中可用。问号表示这个字段不包含具体值。所以,如果指定月内日期,可以在周内日期字段中插入“?”,表示周内日期值无关紧要。字母 L 字符是 last 的缩写。放在月内日期字段中,表示安排在当月最后一天执行。在周内日期字段中,如果“L”单独存在,就等于“7”,否则代表当月内周内日期的最后一个实例。所以“0L”表示安排在当月的最后一个星期日执行。
在月内日期字段中的字母(W)字符把执行安排在最靠近指定值的工作日。把“1W”放在月内日期字段中,表示把执行安排在当月的第一个工作日内。
井号(#)字符为给定月份指定具体的工作日实例。把“MON#2”放在周内日期字段中,表示把任务安排在当月的第二个星期一。
星号(*)字符是通配字符,表示该字段可以接受任何可能的值。
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /
表达式意义
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
每天早上6点
0 6 * * *
每两个小时
0 */2 * * *
晚上11点到早上8点之间每两个小时,早上八点
0 23-7/2,8 * * *
每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * 1-3
1月1日早上4点
0 4 1 1 *
分享到:
相关推荐
赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...
Quartz 是一个开源的作业调度框架,广泛应用于Java企业级应用中,用于自动化任务执行,如定时触发工作流、发送邮件、数据同步等。在Quartz的部署和配置过程中,为了存储作业和触发器的信息,我们需要在关系型数据库...
在Quartz 2.2.3版本中,提供的SQL脚本会根据不同的数据库类型(如MySQL、Oracle、SQL Server、PostgreSQL等)有所不同,因为不同的数据库有不同的SQL语法和数据类型。 例如,在MySQL中,Quartz的初始化SQL语句可能...
Quartz针对PostgreSQL的脚本同样会创建类似的表,以适应PostgreSQL的语法和特性。安装Quartz时,PostgreSQL用户需要运行这个脚本来设置必要的数据库结构。 3. **SQL Server数据库脚本** (`tables_sqlServer.sql`): ...
- DB2脚本则会遵循DB2的SQL语法,同样创建必要的调度表。 这些SQL脚本的使用方法通常是: 1. 根据你正在使用的数据库选择对应的脚本。 2. 运行脚本以在数据库中创建Quartz所需的表结构。 3. 配置Quartz的配置文件...
Quartz是一款广泛使用的开源任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在Quartz中,任务和调度信息存储在数据库中,因此理解如何为不同类型的数据库创建相应的表是至关重要的。以下是对...
每个数据库可能需要不同的SQL语法,因此提供多种数据库的脚本可以确保在各种环境下都能正确配置。 在使用这些脚本时,你需要根据实际使用的数据库类型选择相应的脚本,并在数据库管理工具中运行。注意,运行前可能...
简单触发器可以设置重复执行的间隔,而CronTrigger则允许你用类似Linux CRON语法定义复杂的调度规则。 3. **Scheduler**:Scheduler是Quartz的核心组件,负责管理和执行Job和Trigger。通过调用Scheduler的`schedule...
而对于Oracle数据库,由于其特性和SQL语法的差异,初始化脚本会有所不同。Oracle用户需要运行特定于Oracle的脚本来创建相应的Quartz表,并可能需要调整某些数据类型的长度或限制,以适应Oracle的特性。 文件名...
- Oracle SQL脚本适应Oracle数据库环境,创建符合Oracle语法的Quartz表。 - MySQL SQL脚本适用于MySQL数据库,确保与MySQL的数据类型和约束兼容。 - DB2 SQL脚本则设计用于IBM的DB2数据库系统,遵循DB2的特定语法...
CronTrigger允许使用类似Unix cron的语法来设定复杂的定时规则,例如每天的特定时间执行任务。 总的来说,Quartz 2.0.2是一个强大的Java定时任务框架,它为开发人员提供了灵活、可靠的解决方案,用于在应用程序中...
Cron表达式是一种字符串格式,用于定义计划任务的执行周期,它的语法相对复杂,对于不熟悉的人来说可能会感到困扰。 Quartz Cron表达式生成器是一款实用工具,旨在简化开发者创建Cron表达式的流程。通过这个生成器...
简单触发器用于设定一次性或重复的执行时间,日历触发器则基于时间间隔(如每小时、每天)进行触发,而CRON触发器则允许你使用类似于Linux CRON的语法来定义复杂的执行计划。 3. **作业详情(JobDetail)**:作业...
Quartz支持使用CRON表达式来定义触发器,这是一种描述时间模式的语法。例如,"0 0/5 * * * ?"表示每5分钟执行一次。 六、持久化与集群 1. **Job Store**:Quartz提供了多种存储实现,如RAMJobStore(内存存储)和...
- 如何配置作业和触发器:理解XML配置文件的结构和语法,以及如何定义不同的触发规则。 - 如何创建自定义作业:学习如何编写实现`Job`接口的类,以及如何在`execute()`方法中实现任务逻辑。 - 如何启动和控制调度器...
3. **Cron表达式**:详细讲解Cron表达式的组成部分和语法,以及如何根据业务需求编写正确的表达式。 4. **在线生成器的使用**:说明如何操作这个工具,输入不同参数来生成表达式,并解释生成的表达式所代表的含义。 ...
- 调度表达式(CRON表达式)决定了任务执行的频率,遵循特定的语法,例如`0/20 * * * * ?`表示每20分钟执行一次。 - 使用Quartz时,确保正确配置了数据源,因为Quartz通常需要一个数据库来存储作业和触发器的信息...
对于Oracle,可能需要调整某些SQL语句以适应其特定语法。通常,这包括`QRTZ_JOB_DETAILS`, `QRTZ_TRIGGERS`, `QRTZ_SIMPLE_TRIGGERS`, `QRTZ_CRON_TRIGGERS`等表。 3. **配置JobStore**:在`quartz.properties`中,...
此外,Quartz 还支持 Cron 表达式,使得可以使用类似 Cron 的语法来定义复杂的调度规则。 在 "quartz-all-2.0.2.jar" 文件中,包含了 Quartz 框架的所有类和资源,包括 JobStore 实现(如 RAMJobStore、 ...
通过理解和掌握Cron表达式的语法和特性,开发者可以轻松实现复杂多变的定时任务需求,从而提升应用的自动化程度和效率。无论是日常的系统维护还是业务逻辑处理,Quartz都能提供稳定可靠的解决方案。