`
coolerbaosi
  • 浏览: 730786 次
文章分类
社区版块
存档分类
最新评论

Quartz Cron 触发器

 
阅读更多

CronTrigger支持比SimpleTrigger更具体的调度,而且也不是很复杂。基于 cron 表达式,CronTrigger支持类似日历的重复间隔,而不是单一的时间间隔 —— 这相对SimpleTrigger而言是一大改进。

Cron 表达式包括以下 7 个字段:

  • 小时
  • 月内日期
  • 周内日期
  • 年(可选字段)

特殊字符

Cron 触发器利用一系列特殊字符,如下所示:

  • 反斜线(/)字符表示增量值。例如,在秒字段中“5/15”代表从第 5 秒开始,每 15 秒一次。

  • 问号(?)字符和字母 L 字符只有在月内日期和周内日期字段中可用。问号表示这个字段不包含具体值。所以,如果指定月内日期,可以在周内日期字段中插入“?”,表示周内日期值无关紧要。字母 L 字符是last的缩写。放在月内日期字段中,表示安排在当月最后一天执行。在周内日期字段中,如果“L”单独存在,就等于“7”,否则代表当月内周内日期的最后一个实例。所以“0L”表示安排在当月的最后一个星期日执行。

  • 在月内日期字段中的字母(W)字符把执行安排在最靠近指定值的工作日。把“1W”放在月内日期字段中,表示把执行安排在当月的第一个工作日内。

  • 井号(#)字符为给定月份指定具体的工作日实例。把“MON#2”放在周内日期字段中,表示把任务安排在当月的第二个星期一。

  • 星号(*)字符是通配字符,表示该字段可以接受任何可能的值。

所有这些定义看起来可能有些吓人,但是只要几分钟练习之后,cron 表达式就会显得十分简单。

清单 3 显示了CronTrigger的一个示例。请注意SchedulerFactorySchedulerJobDetail的实例化,与SimpleTrigger示例中的实例化是相同的。在这个示例中,只是修改了触发器。这里指定的 cron 表达式(“0/5 * * * * ?”)安排任务每 5 秒执行一次。


清单 3. CronTriggerRunner.java
				
    public void task() throws SchedulerException
    {
        // Initiate a Schedule Factory
        SchedulerFactory schedulerFactory = new StdSchedulerFactory();
        // Retrieve a scheduler from schedule factory
        Scheduler scheduler = schedulerFactory.getScheduler();
        
        // current time
        long ctime = System.currentTimeMillis(); 
        
        // Initiate JobDetail with job name, job group, and executable job class
        JobDetail jobDetail = 
        	new JobDetail("jobDetail2", "jobDetailGroup2", SimpleQuartzJob.class);
        // Initiate CronTrigger with its name and group name
        CronTrigger cronTrigger = new CronTrigger("cronTrigger", "triggerGroup2");
        try {
            // setup CronExpression
            CronExpression cexp = new CronExpression("0/5 * * * * ?");
            // Assign the CronExpression to CronTrigger
            cronTrigger.setCronExpression(cexp);
        } catch (Exception e) {
            e.printStackTrace();
        }
        // schedule a job with JobDetail and Trigger
        scheduler.scheduleJob(jobDetail, cronTrigger);
        
        // start the scheduler
        scheduler.start();
    }
      

分享到:
评论

相关推荐

    Quartz中文帮助文档.chm

    有了它,quartz不再抽象。 资源来自于互联网,Chuck Cavaness 著 Unmi(隔叶...3.Cron触发器及相关内容 4.实现Quartz监听、使用插件和远程方式 5.Quartz集群 6.Quartz和Web应用 7.工作流中使用Quartz 8.附录:配置参考

    Java中使用Quartz进行任务调度常用操作

    包含Java中使用Quartz进行任务调度常用操作:设置开始时间、设置结束时间、简单触发器、Cron触发器、作业监听器、启动多个作业、查看所有作业、手动触发作业、传递参数、取消/删除作业、作业出错时自动再执行等代码...

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

    应用 JobInitializationPlugin 在 quartz_jobs.xml 配置文件中写 Cron 表达式。 第五章. Cron 触发器及相关内容 (第四部分) 内容提要:Cron 表达式 Cookbook,列举了各种 Cron 表达式的写法和意义,有助于更好的...

    Quartz Job Scheduling Framework_CN_V1.0.0.pdf

    第一章. 企业应用中的作业调度 ... Cron 触发器及相关内容 (第一部分) 第六章. Job 存储和持久化 (第一部分) 第八章. 使用 Quartz 插件 (第一部分) 第九章. 使用 Quartz 的远程方式 (第一部分) ....

    Quartz.NET 调度系统 demo

    本文使用一系列代码示例介绍 Quartz.NET API,演示它的机制,例如作业、触发器、作业仓库。 Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net...

    QuartzAPI以及例子

    Quartz.NET是一个开源的作业调度框架,是...它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业.

    quartz-2.2.3.jar

    quartz:是一个任务调度框架,通过触发器设置作业的定时运行规则,来执行定时任务。相当于数据库中的 Job、Windows 的计划任务、Unix/Linux 下的 Cron,但 Quartz 可以把排程控制的更精细。把一系列任务自动安置到一...

    Quartz.net定时器

    Quartz.NET是一个开源的作业调度框架,是...它实现了作业和触发器的多对多关系,还能把多个作业与不同的触发器关联。整合了 Quartz.NET的应用程序可以重用来自不同事件的作业,还可以为一个事件组合多个作业.

    spring-boot-quartz-demo:Spring Boot + Quartz + Angular2演示应用程序。 它说明了如何安排cron作业,如何暂停作业,恢复作业,编辑石英作业等。它使用PostgreSQL作为存储石英作业和触发器的数据库

    Spring Boot + Quartz + Angular2演示应用程序。 它说明了如何安排cron作业,如何暂停作业,恢复作业,编辑石英作业等。它使用PostgreSQL作为存储石英作业和触发器的数据库。 详细说明: : 它包含基于Angular2...

    Java版水果管理系统源码-hrSystem:struts2springhibernate实现简单员工自动管理系统

    Java版水果管理系统源码 ...Quartz配合cron触发器实现系统定时执行任务。 ##二.相关技术介绍 1.传统表现层:JSP 本系统使用JSP作为表现层,负责手机用户的请求数据,以及业务数据的展示。 2.MVC框架 本系统使用struts

    基于SpringBoot+Quartz的轻量级分布式定时任务调度系统源码+项目说明+sql数据库.zip

    - 触发器类型:支持CRON和SIMPLE两种触发器(SIMPLE触发器即为按照固定秒数间隔执行的触发器) - Cron执行表达式:按照CRON内容,触发任务调度 - 间隔时间(秒):按照固定的间隔时间,周期性触发 - 请求类型:`GET`...

    QuartzNServiceBusSample

    取而代之的是,我们可以使用Quartz.NET按cron类型的时间表触发消息,例如每月一次,每天两次,分别在上午8点和下午4点等。 跑步: 在本地。\ SQLExpress实例中创建一个名为“ QuartzNServiceBusSample”的数据库...

    Java常见面试问题.docx

    Wait、notify 实现job类,设置触发器 放到调度器中 start 10.Springboot是怎么整合quartz的? 11.Rides的几种数据类型及应用场景? 12.工作流 activety? 13.禅道的使用 14.Cron表达式多看看 15.父子模型 16.消息...

    java源码排课-QuartzSchedularService:Quartz是功能丰富的开源作业调度库,几乎可以集成到任何Java应用程序中-

    java源码排课QuartzSchelarService Spring Boot + Quartz应用 它说明了如何安排cron作业,如何暂停作业,恢复作业,编辑石英作业等。它使用h2作为存储石英作业和触发器的数据库。

    开心农场java源码-gradle-webservice-client:gradle-webservice-客户端

    支持源码控制触发器和调度触发器; 通常计时器字符串看起来很像 cron,它也让那些人感到高兴。 如果它是一个真正的农场,那么有 > 1 台构建机器,因此解决方案中内置了一些可用性。 如何使用 客户端调用使用 build ...

    Sundial:轻量级作业计划框架

    只需定义作业,定义触发器,然后启动日d调度程序即可。详细描述Sundial是从Quartz( )派生而来的轻量级Java作业调度框架,简而言之就是基本要素。 Sundial还隐藏了Quartz的细节配置细节,从而减少了启动和运行简单...

Global site tag (gtag.js) - Google Analytics