`
yimeng528
  • 浏览: 188697 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第七节:Quartz中的cron-like表达式

阅读更多

配置说明请参考:http://www.blogjava.net/xmatthew/archive/2009/02/15/253864.html

 

cron-like也有叫unix-like表达式的,主要是对时间的配置,在quartz中主要用于触发器中,主要是根据用户配置的表达式以得出要执行作业的时间,看看Quartz是怎么解析cron-like表达式的,又是如何用于触发器之中。

 

CronExpression:

Cron-like表达式的操作类是CronExpression,看一下它的类图吧:

 

 

图中画x号的方法是内部没有实现的方法,方框框起来的是我认为需要了解的方法,我下说一下我框起来的方法的含义:

 

GetNextValidTimeAfter方法:得到下一个有效的时间,比如表达式配置的是: /10 0 0 * * ?

                                           意思是每间隔10s会执行一次作业,如果当前时间是:2010/1/1 10:10:00

                                          哪么这个方法将返回:2010/1/1 10:10:10

GetNextInvalidTimeAfter方法:是得到下一个无效时间

GetNextValidTimeAfter方法:是得到下一次执行的时间

GetNextValidTimeAfter方法:是指给定的一个时间是否满足cron-like表达式

 

 

下面看一个例子:

 

[csharp] view plaincopy
  1. [STAThread]  
  2.        static void Main()  
  3.        {  
  4.            //[秒] [分] [小时] [日] [月] [周] [年]  
  5.            //实例化表达式类,把字符串转成一个对象  
  6.            CronExpression expression = new CronExpression("0 15 10 * * ? 2012");  
  7.   
  8.            while (true)  
  9.            {  
  10.                DateTimeOffset utcNow = SystemTime.UtcNow();  
  11.                Console.WriteLine("UtcNow - " + utcNow);  
  12.   
  13.                //Console.WriteLine("GetFinalFireTime - " + expression.GetFinalFireTime());这个方法没有实现  
  14.                //得到给定时间下一个无效的时间  
  15.                Console.WriteLine("GetNextInvalidTimeAfter - " + expression.GetNextInvalidTimeAfter(utcNow));  
  16.                //得到给定时间的下一个有效的时间  
  17.                Console.WriteLine("GetNextValidTimeAfter - " + expression.GetNextValidTimeAfter(utcNow));  
  18.                //得到给定时间下一个符合表达式的时间  
  19.                Console.WriteLine("GetTimeAfter - " + expression.GetTimeAfter(utcNow));  
  20.                //Console.WriteLine("GetTimeBefore - " + expression.GetTimeBefore(utcNow));这个方法没有实现  
  21.                //给定时间是否符合表达式  
  22.                Console.WriteLine("IsSatisfiedBy - " + expression.IsSatisfiedBy(new DateTimeOffset(2012, 4, 6, 2, 15, 0, TimeSpan.Zero)));  
  23.                Console.WriteLine(expression.TimeZone);  
  24.                Console.WriteLine("------------------------------------");  
  25.                Console.WriteLine(expression.GetExpressionSummary());  
  26.                Console.Read();  
  27.            }  
  28.        }  


 

结果:

 

 

总结:对cron-like的解析也不是很难嘛,哈哈

 

下载源码

http://download.csdn.net/detail/wanggang421338916/4214458

点击打开链接

分享到:
评论

相关推荐

    Quartz中的cron-like表达式解析 cron-like unix-like c#

    在Quartz中,cron-like表达式是一种强大的工具,用于定义任务的执行计划,类似于Unix系统的cron作业调度。Cron-like表达式在C#中得到了很好的实现,使得.NET开发者也能享受到这种灵活的调度能力。 在Unix系统中,...

    quartz-all-1.6.1.jar

    Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵 活性而...它有很多特征,如:数据库支持,集群,插件,EJB作业预构 建,JavaMail及其它,支持cron-like表达式等等。

    quartz表达式生成工具

    在Quartz中,cron表达式包含6或7个字段,分别代表秒、分、小时、日、月、周几和年(可选)。每个字段可以是一个具体的值、通配符(*)、范围、列表或组合,用于指定任务的执行时刻。 3. **Quartz与cron表达式的关系...

    Quartz.NET 调度系统 demo

    前言:8月份翻译了Quartz.NET的官方课程:开源的作业调度框架 - Quartz.NET, 有的朋友抱怨难用,确实,目前Qiartz.NET的最新版本还是0.6,还...它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。

    Quartz.NET demo

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 ...它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。 该附件是个实例,使用quartz.net 2.1.2版本编写,可以正常运行,欢迎下载使用

    Quartz_2.0.2_API.CHM chm格式

    Quartz 2.0.2 API chm 带索引和全文检索,方便携带和查询 Quartz是一个开源的作业调度框架,它完全由Java写...它有很多特征,如:数据库支持,集群,插件,EJB作业预构 建,JavaMail及其它,支持cron-like表达式等等。

    FreePay_Quartz_aug_2008-源码.rar

    1. **Quartz简介**:Quartz是Cron-like作业调度库,设计用于在Java应用程序中实现任务调度。它提供了强大的API,允许开发者创建、调度和管理任务。Quartz可以处理简单到复杂的任务调度需求,包括触发基于时间的事件...

    quartz-2.1.7_API CHM格式

    它有很多特征,如:数据库支持,集群,插件,EJB作业预构 建,JavaMail及其它,支持cron-like表达式等等。 从之前发布其他chm文件下载用户的反映看,有不少朋友反映下载后打开无法显示,这一般不是chm文件的问题,...

    Quartz.NET-1.0.2.rar

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。...它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。

    【SpringBoot】廿五、SpringBoot中使用Quartz管理定时任务.pdf

    5. **Cron-like表达式**:Quartz支持使用类似cron的表达式来定义任务执行时间。 **二、SpringBoot集成Quartz** 1. **引入Maven依赖** 在SpringBoot项目中,我们需要添加以下两个依赖: - `spring-boot-starter-...

    动态QuartzDemo,整合SSM框架

    Quartz支持 cron-like 表达式、触发器、作业和持久化,确保即使在应用程序重启后也能恢复计划的任务。 2. **SSM框架整合**: - **Spring**:Spring 是一个全面的Java应用框架,提供了依赖注入(DI)、面向切面编程...

    QuartzAPI以及例子

    它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。 你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在执行...

    Quartz.net定时器

    它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。  你曾经需要应用执行一个任务吗?这个任务每天或每周星期二晚上11:30,或许仅仅每个月的最后一天执行。一个自动执行而无须干预的任务在...

    quartz定时调度完整实例

    - Quartz是Cron-like和Calendar-based作业调度的Java实现,它允许开发人员在应用程序中定义、安排和执行任务。 - 作为轻量级的调度框架,Quartz可以非常方便地集成到任何Java应用中,无论是简单的单机应用还是大型...

    详细讲解Quartz如何从入门到精通下载

    1. **灵活性与简单性**:Quartz的设计允许开发者创建简单或复杂的作业调度,无论任务的执行频率是每日、每周、还是更复杂的定时模式,例如cron-like表达式。 2. **数据库支持**:Quartz支持将作业和触发器存储在...

    Quartz如何从入门到精通.pdf

    Quartz框架的其他特征包括:数据库支持,集群,插件,EJB作业预构建,JavaMail及其他,支持cron-like表达式等等。Quartz框架可以用在单机J2SE应用中,作为一个RMI服务器,也可以用在web应用中,甚至也可以用在J2EE...

    quartz.net说明文档

    4. **cron-like表达式**:支持类似Unix cron的定时表达式,用于设置复杂的调度规则。 5. **错误处理**:当作业执行出错时,框架可以捕获异常并尝试重新执行。 使用Quartz.NET的步骤大致如下: 1. **下载与集成**:...

    Quartz入门到精通 中文WORD版.rar

    Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵活性而不...它有很多特征,如:数据库支持,集群,插件,EJB作业预构建,JavaMail及其它,支持cron-like表达式等等。

    Quartz_net框架及官方开发文档

    作业调度框架插件及帮助文档,Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp...它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。

Global site tag (gtag.js) - Google Analytics