CronTrigger类
--------------------------------------------------------------------------------
Quartz有两大触发器,除了上面使用的SimpleTrigger外,就是CronTrigger。CronTrigger能够提供复杂的触发器表达式的支持。CronTrigger是基于Unix Cron守护进程,它是一个调度程序,支持简单而强大的触发器语法。
使用CronTrigger主要的是要掌握Cron表达式。Cron表达式包含6个必要组件和一个可选组件,如下表所示。
位置
含义
允许的特殊字符
1
秒(0~59)
, - * /
2
分(0~59)
, - * /
3
小时(0~24)
, - * /
4
日期(1~31)
, - * / ? L W C
5
月(JAN~DEC或1~12)
, - * /
6
星期(SUN~SAT或1~7)
, - * / ? L C #
7
年(可选,1970~2099),若为空,表示全部时间范围
, - * /
特殊字符的含义,见下表。
特殊字符
说明
*
通配符,任意值
?
无特定值。通常和其他指定的值一起使用,表示必须显示该值但不能检查
-
范围。e.g. 小时部分10-12表示10:00,11:00, 12:00
,
列分隔符。可以让你指定一系列的值。e.g. 在星期域中指定MON、TUE和WED
/
增量。表示一个值的增量,e.g. 分钟域中0/1表示从0开始,每次增加1min
L
表示Last。它在日期和星期域中表示有所不同。在日期域中,表示这个月的最后一天,而在星期域中,它永远是7(星期六)。当你希望使用星期中某一天时,L字符非常有用。e.g. 星期域中6L表示每一个月的最后一个星期五
W
在本月内离当天最近的工作日触发,所谓的最近工作日,即当天到工作日的前后最短距离,如果当天即为工作日,则距离是0;所谓本月内指的是不能跨月取到最近工作日,即使前/后月份的最后一天/第一天确实满足最近工作日。e.g. LW表示本月的最后一个工作日触发,W强烈依赖月份。
#
表示该月的第几个星期,e.g. 1#2表示每一个月的第一个星期一
C
日历值。日期值是根据一个给定的日历计算出来的。在日期域中给定一个20C将在20日(日历包括20日)或20日后日历中包含的第一天(不包括20日)激活触发器。例如在一个星期域中使用6C表示日历中星期五(日历包括星期五)或者第一天(日历不包括星期五)
Cron表达式举例:
"30 * * * * ?" 每半分钟触发任务
"30 10 * * * ?" 每小时的10分30秒触发任务
"30 10 1 * * ?" 每天1点10分30秒触发任务
"30 10 1 20 * ?" 每月20号1点10分30秒触发任务
"30 10 1 20 10 ? *" 每年10月20号1点10分30秒触发任务
"30 10 1 20 10 ? 2011" 2011年10月20号1点10分30秒触发任务
"30 10 1 ? 10 * 2011" 2011年10月每天1点10分30秒触发任务
"30 10 1 ? 10 SUN 2011" 2011年10月每周日1点10分30秒触发任务
"15,30,45 * * * * ?" 每15秒,30秒,45秒时触发任务
"15-45 * * * * ?" 15到45秒内,每秒都触发任务
"15/5 * * * * ?" 每分钟的每15秒开始触发,每隔5秒触发一次
"15-30/5 * * * * ?" 每分钟的15秒到30秒之间开始触发,每隔5秒触发一次
"0 0/3 * * * ?" 每小时的第0分0秒开始,每三分钟触发一次
"0 15 10 ? * MON-FRI" 星期一到星期五的10点15分0秒触发任务
"0 15 10 L * ?" 每个月最后一天的10点15分0秒触发任务
"0 15 10 LW * ?" 每个月最后一个工作日的10点15分0秒触发任务
"0 15 10 ? * 5L" 每个月最后一个星期四的10点15分0秒触发任务
"0 15 10 ? * 5#3" 每个月第三周的星期四的10点15分0秒触发任务
分享到:
相关推荐
在"Quartz.net作业调度自定义定时执行任务多任务执行c#"这个主题中,我们将深入探讨如何使用Quartz.NET来实现自定义的定时任务,以及如何处理多任务执行。 首先,我们需要理解Quartz.NET的基本概念。在Quartz.NET中...
Quartz是一款开源的作业调度框架,它允许开发者创建和安排任务执行。在Java应用程序中,Quartz能够帮助我们在特定的时间点或按照预设的周期执行某些功能,如数据收集、日志清理等。当我们需要终止某个正在运行的任务...
Quartz则是一个用于创建和调度任务的工具,它允许开发者定义作业(Job)和触发器(Trigger),作业是需要执行的任务,而触发器决定了何时执行这个任务。在Spring中集成Quartz,可以利用Spring的IoC容器管理作业和...
1. **灵活的调度**:Quartz.NET支持多种调度模式,如简单触发器、cron触发器,可以按照精确时间间隔、日期或者复杂的cron表达式执行任务。 2. **集群支持**:Quartz.NET可以在多个服务器上分布式部署,确保任务的高...
本文将详细介绍如何使用Quartz.Net进行定时任务的配置与执行。 首先,**通过Nuget安装框架**非常简单,只需在Visual Studio中打开Nuget包管理器,搜索"Quartz.Net",然后安装指定版本,例如2.5.0。安装完成后,即可...
在实际项目中,有时我们需要判断一个Quartz任务是否正在运行,以便进行相应的操作,如避免重复执行或者进行状态监控。本文将详细介绍如何在Quartz中实现这一功能。 首先,理解Quartz的工作原理是关键。Quartz通过...
- Quartz是一个开源的作业调度框架,它允许开发者定义作业(Job)和触发器(Trigger),并由Quartz自动调度执行。Quartz支持复杂的定时规则,如CRON表达式,可以精确到秒级别。 - 创建Job:首先,你需要创建一个...
Spring Quartz是一个强大的、开源的作业调度框架,允许开发者定义和执行复杂的定时任务。然而,当多个服务器实例并行运行时,如果不采取适当的策略,同一定时任务可能会在每个服务器上都执行,导致数据不一致和资源...
然后,我们需要定义 Trigger,它是调度任务何时执行的规则。Quartz 提供了多种 Trigger 类型,如 SimpleTrigger(一次性执行)和 CronTrigger(基于 cron 表达式执行)。在这个 demo 中,我们将关注 CronTrigger,...
在“quartz 调用两次任务”这个问题中,我们可能遇到了一个常见问题,即同一个 Quartz 任务被错误地触发执行了两次。 在 Quartz 中,任务(Job)是通过实现 `org.quartz.Job` 接口的类来创建的,而调度则是通过 `...
- **Job 实现类**:需要继承自 Quartz 的 Job 接口,并实现 `execute` 方法,该方法定义了实际需要执行的任务逻辑。 - **Trigger 实现类**:根据具体需求选择合适的触发器类型(如 SimpleTrigger、CronTrigger),...
Quartz不仅可以按照固定间隔执行任务,还能在特定日期和时间点执行,这使得它非常适合用于执行如日终报告、周期性维护等任务。 在Quartz中,作业(Job)是需要执行的任务,它实现了`org.quartz.Job`接口或其子类,...
Quartz.NET是一款强大的开源作业调度框架,用于在.NET环境中创建和执行定时任务。这个"Quartz.net-定时任务 Demo"示例将展示如何利用Quartz.NET来安排代码在指定时间后执行,比如几十分钟后的场景。 Quartz.NET的...
Quartz是一款广泛使用的开源作业调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在实际应用中,我们可能需要根据业务需求动态地配置定时任务的执行方式,例如,某些任务可能需要串行执行,而其他任务则...
接着,创建Trigger定义执行任务的时间策略,最后将Job和Trigger关联并添加到Scheduler中。Quartz会根据Trigger的设置自动执行Job。 在“TimingtaskPro”这个压缩包中,可能包含了以下内容: 1. **项目结构**:包含...
Quartz是一款开源的作业调度框架,它允许开发者创建、调度和执行各种类型的任务。这个"quartz动态任务管理"源码包很可能是针对Quartz框架的实现,旨在帮助开发者更方便地管理和控制任务的生命周期。 Quartz的核心...
SpringBoot整合Quartz实现定时任务调度是企业级应用中常见的需求,主要用于自动化执行某些周期性的任务,例如数据备份、报表生成、系统维护等。Quartz是一个功能强大的开源作业调度框架,能够灵活地定义任务和调度...
在这个例子中,`cronExpression`定义了任务的执行频率,`targetObject`和`targetMethod`指定了任务执行的具体对象和方法。 当遇到Spring定时器执行两次的问题时,可能的原因有以下几点: 1. **多实例问题**:如果...
Quartz的工作原理是通过Job和Trigger两个核心概念来实现的,Job是具体需要执行的任务,Trigger用来触发任务的执行时机。在Quartz中,可以通过定义各种Trigger来实现不同的调度策略,如简单调度、Cron调度等。Quartz...
Quartz.NET允许开发者在应用程序中安排任务在特定时间执行,从而实现自动化的工作流程。 在Quartz.NET的使用过程中,主要分为以下几个步骤: 1. **创建调度器(Scheduler)**:首先,我们需要创建一个调度器实例,它...