`

Quartz 任务调度器

阅读更多
字段允许值允许的特殊字符
0-59, - * /
0-59, - * /
小时0-23, - * /
日期1-31, - * ? / L W C
月份1-12或者JAN-DEC, - * /
星期1-7 或者 SUN-SAT , - * ? / L C #
年(可选)1970-2099 , - * /


星期的缩写
* SUN,MON,TUE,WED,THU,FRI,SAT

月份的英文缩写

* JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEPT,OCT,NOV,DEC

特殊字符含义
'*'字符可以用于所有字段,在“分”字段中设为"*"表示"每一分钟"的含义。

'?'字符可以用在“日”和“周几”字段. 它用来指定 '不明确的值'。这在你需要指定这两个字段中的某一个值而不是另外一个的时候会被用到。

'-'字符被用来指定一个值的范围,比如在“小时”字段中设为"10-12"表示"10点到12点"。

','字符指定多个值。

'/'字符用来指定一个值的的增加幅度。比如在“秒”字段中设置为"0/15"表示"第0, 15, 30, 和 45秒"。

'L'字符可用在“日”和“周几”这两个字段。它是"last"的缩写, 但是在这两个字段中有不同的含义。
例如,“日”字段中的"L"表示"一个月中的最后一天" —— 对于一月就是31号对于二月来说就是28号(非闰年)。
而在“周几”字段中, 它简单的表示"7" or "SAT",但是如果在“周几”字段中使用时跟在某个数字之后, 它表示"该月最后一个星期×" —— 比如"6L"表示"该月最后一个周五"。
当使用'L'选项时,指定确定的列表或者范围非常重要,否则你会被结果搞糊涂的。

'W'可用于“日”字段。用来指定历给定日期最近的工作日(周一到周五) 。
比如你将“日”字段设为"15W",意为: "离该月15号最近的工作日"。因此如果15号为周六,触发器会在14号即周五调用。
如果15号为周日, 触发器会在16号也就是周一触发。如果15号为周二,那么当天就会触发。然而如果你将“日”字段设为"1W",
而一号又是周六, 触发器会于下周一也就是当月的3号触发,因为它不会越过当月的值的范围边界。
'W'字符只能用于“日”字段的值为单独的一天而不是一系列值的时候。
'L'和'W'可以组合用于“日”字段表示为'LW',意为"该月最后一个工作日"。

'#'字符可用于“周几”字段。该字符表示“该月第几个周×”,比如"6#3"表示该月第三个周五( 6表示周五而"#3"该月第三个)。再比如: "2#1" = 表示该月第一个周一而 "4#5" = 该月第五个周三。
注意如果你指定"#5"该月没有第五个“周×”,该月是不会触发的。

'C'字符可用于“日”和“周几”字段,它是"calendar"的缩写。它表示为基于相关的日历所计算出的值(如果有的话)。
如果没有关联的日历, 那它等同于包含全部日历。“日”字段值为"5C"表示"日历中的第一天或者5号以后",
“周几”字段值为"1C"则表示"日历中的第一天或者周日以后"。

★对于“月份”字段和“周几”字段来说合法的字符都不是大小写敏感的。

例子:
"0 0 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分每分钟一次触发
"0 0/5 14 * * ?"每天从下午2点开始到2:55分结束每5分钟一次触发
"0 0/5 14,18 * * ?"每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
"0 0-5 14 * * ?"每天14:00至14:05每分钟一次触发
"0 10,44 14 ? 3 WED"三月的每周三的14:10和14: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触发


使用代码
@Test
public void test() throws Exception {
	SchedulerFactory factory = new StdSchedulerFactory("quartz.properties");
	Scheduler scheduler = factory.getScheduler();

	JobDetail jobDetail = new JobDetail("job-1", "group-1", SimpleQuartzJob.class);

	CronTrigger cronTrigger = new CronTrigger("trigger-1", "group-1");
	cronTrigger.setCronExpression("*/1 * * * * ? 1970-2099");

	scheduler.scheduleJob(jobDetail, cronTrigger);
	scheduler.start();
	
	//while (true) ;
}


官方配置
org.quartz.scheduler.instanceName=Scheduler
org.quartz.scheduler.instanceId=1
org.quartz.scheduler.rmi.export=false
org.quartz.scheduler.rmi.proxy=false

org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount=3

org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore
分享到:
评论

相关推荐

    Quartz任务调度器

    Quartz任务调度器是一款强大的开源任务调度框架,广泛应用于Java应用程序中,用于自动化定时任务的执行。它提供了灵活的任务调度机制,使得开发者可以方便地定义、安排和执行各种任务。在与Spring框架整合后,Quartz...

    Spring中Quartz任务调度器cronexpression配置说明

    ### Spring中Quartz任务调度器cronexpression配置说明 在现代软件开发中,特别是Java应用程序领域,定时任务的执行是常见的需求之一。Spring框架通过集成Quartz这一强大的任务调度库,为开发者提供了灵活、高效的...

    任务调度器实例

    总的来说,Quartz任务调度器实例提供了一个实践平台,帮助开发者学习和掌握如何在Java应用中实现定时任务,提升系统自动化水平,提高效率。通过研究和实践,你可以将这些知识应用到实际项目中,解决各种定时任务的...

    任务调度 quartz

    下面我们将深入探讨原生Quartz任务调度的实现步骤,以及在Spring Boot中集成Quartz的详细过程。 ### 原生Quartz任务调度实现步骤 1. **引入依赖**:首先,在项目中添加Quartz库的依赖,如果是Maven项目,可以在pom...

    .net Quartz 任务调度平台源码

    《.NET Quartz 任务调度平台源码解析与应用》 .NET Quartz 是一款强大的任务调度框架,它为.NET开发者提供了一种高效、灵活的方式来安排和执行周期性任务。Quartz.NET 是开源项目Quartz的.NET版本,它允许开发人员...

    quartz 定时任务调度

    Quartz 提供了一套丰富的 API 和支持,可以方便地与 Spring 框架集成,实现灵活的定时任务调度。 在 Spring 中集成 Quartz,首先需要创建一个 Java 类作为定时任务的执行体,例如 `MyJob` 类。这个类通常包含一个...

    C#基于Quartz任务调度系统

    **C#基于Quartz任务调度系统** 在软件开发中,任务调度是一项重要的功能,它允许开发者安排任务在特定时间执行,比如数据同步、定时备份、报告生成等。Quartz是一款强大的开源任务调度库,广泛应用于Java和.NET生态...

    Quartz.Net任务调度

    Quartz.Net是一个强大的任务调度框架,它在.NET环境中被广泛应用,尤其在需要执行定时任务的系统中。Quartz.Net的设计灵感来源于Java的Quartz库,它允许开发者灵活地定义和管理作业(Jobs)以及触发器(Triggers),...

    Quartz任务调度管理

    ### Quartz任务调度管理 #### 一、任务调度基础概念 任务调度是指系统按照预先设定的时间规则来自动执行特定任务的功能。这种机制广泛应用于各种场景,例如数据备份、定期检查资源状态、发送邮件通知等。 ##### ...

    spring任务调度(Quartz )

    - **调度类** (`schedule.TestJob`):这个类继承自`QuartzJobBean`,它是Quartz任务的实现。在`executeInternal()`方法中,我们将调用`UserService`的服务方法,执行实际的业务操作。通过`@Autowired`或在XML配置中...

    Quartz任务调度框架教程中文版

    Quartz任务调度框架教程中文版 chm格式

    quartz任务调度框架简单实用小demo

    本“quartz任务调度框架简单实用小demo”旨在帮助开发者快速理解和应用Quartz。 1. **Quartz基本概念** - **Job**: 任务的基本单元,代表一个需要执行的工作。 - **Trigger**: 触发器,决定Job何时被执行。 - **...

    Spring+Quartz实现任务调度的小例子

    Spring框架和Quartz是两个广泛使用的工具,它们可以协同工作以实现复杂和灵活的任务调度。本篇文章将深入探讨如何使用Spring与Quartz结合来创建一个任务调度的小例子。 首先,Spring是一个开源的Java企业级应用开发...

    quartz任务调度使用手册

    Quartz任务调度是一款开源的Java定时任务框架,广泛应用于企业级应用系统中,用于执行周期性的后台任务。这款工具提供了一种灵活的方式来安排和管理任务,使得开发者无需在业务代码中处理时间相关的逻辑,而是通过...

    ASP.NET使用Quartz.NET实现定时任务调度

    与Quartz.NET结合使用,我们可以轻松地将定时任务调度服务包装为一个Windows服务,这样即使在没有用户登录的情况下,也可以持续运行我们的任务调度。 在"基于quartz.net+TopShelf的任务调度源码"中,开发者可能已经...

    spring+mybatis+quartz任务调度实例和spring+quartz任务调度实例

    里面包含了两个工程项目: 1.Java project工程(含jar包,JDK1.6)。 是spring+quartz的任务调度实例。 2.Java web工程(含jar包,JDK1.7)。 spring+mybatis+quartz任务调度实例

    利用Quartz实现任务调度的集群

    【Quartz任务调度集群】是Java开发中解决定时任务需求的一种高效方案,它由OpenSymphony团队开发,自2001年以来广泛应用于各种项目。Quartz的核心优势在于其灵活性和简单性,允许开发者自由定义任务触发的时间表,...

    Spring Quartz如何动态配置时间

    在用户设置了时间规则后,我们需要将其转换为 Unix Cron Expression,以便于 Quartz 任务调度器可以正确地解析和执行任务。我们可以使用 Quartz 提供的 CronExpression 类来实现时间规则的解析和转换。 3. 将转换后...

    任务调度框架Quartz

    1.调度器(Scheduler):Quartz 的核心组件,负责管理和执行任务调度。调度器可以创建、执行和管理任务,包括触发器的创建、任务的执行和状态的管理。 2.任务(Job):是一个接口,只有一个方法 void execute...

Global site tag (gtag.js) - Google Analytics