import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import org.apache.commons.lang.time.DateUtils;
import org.quartz.impl.calendar.CronCalendar;
public class TestCronCalender {
/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
// 允许执行的时间, 星期参数:"7" = "SAT",2 = MON
// 【秒】 【分钟】 【小时】 【月中天】 【月】 【周中天(1-7)】 [【年(可省略)】]
String excludeExpression;
// 设置功能禁用时间表
// excludeExpression = "* * 0-7,18-23 ? * 7 2012";
// excludeExpression = "* * 0-7,18-23 ? * * 2013";
// excludeExpression = "* * 0-7,18-23 ? * *";
// excludeExpression = "* * 0-7,18-23 ? * 1,2,3,5,6";
excludeExpression = "* * * 1-3,8-13 4 ?";
CronCalendar calendar = new CronCalendar(excludeExpression);
System.out.println(calendar.getTimeZone().getID());
System.out.println(calendar.getTimeZone().getDisplayName());
// System.out.println(TimeZone.getTimeZone("GMT-8").getID());
// 周三,10点
Date testDate = str2Date("2013-04-3 13:00:00");
boolean canDo = calendar.isTimeIncluded(testDate.getTime());
System.out.println("canDo :" + canDo);
System.out.println("排除规则为:[" + calendar.getCronExpression() + "] " + date2String(testDate)
+ " 【功能】 " + (canDo ? "可以执行" : "禁止执行"));
}
public static Date str2Date(String dStr) {
String[] parsePatterns = new String[] { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss,SSS",
"yyyy-MM-dd", "yyyyMMdd" };
Date result = null;
try {
result = DateUtils.parseDate(dStr, parsePatterns);
} catch (ParseException e) {
}
return result;
}
public static String date2String(Date date) {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()).format(date);
}
}
分享到:
相关推荐
在这个例子中,“响铃”是需要执行的具体任务,“每天早上七点”则是触发任务执行的时间点。 #### 二、Quartz框架概述 Quartz 是一个开源的任务调度框架,广泛用于Java应用程序中。它提供了强大的任务调度功能,...
Quartz是一款开源的工作调度框架,它允许开发者创建、调度和执行计划任务。在Spring中整合Quartz,可以方便地管理应用程序的定时任务。 Quartz集群配置的主要目标是确保在多台服务器环境下,任务的执行不会因为...
它的核心功能包括:可持久化的作业和触发器存储、集群支持、多线程执行以及丰富的API。 二、Quartz的核心概念 1. **Job**:工作,是你想要执行的任务实体,可以是一个无状态或有状态的对象。 2. **Trigger**:...
在Spring Boot中,你可以通过实现`org.springframework.scheduling.quartz.JobDetailBean`并使用`@DisallowConcurrentExecution`或`@PersistJobDataAfterExecution`注解来创建可重入或持久化的Job类。例如: ```...
8. **QRTZ_CALENDARS**:Quartz允许用户自定义日历,以排除某些日期或时间段的任务触发。此表存储这些自定义日历的Blob数据。 9. **QRTZ_FIRED_TRIGGERS**:当Trigger被调度器触发时,相关信息会被记录在此表中。这...
Quartz.Net是一个强大的开源任务调度框架,用于在.NET环境中创建和执行定时任务。它提供了灵活的调度机制,允许开发者在应用程序中定义复杂的作业执行规则,从而实现自动化的工作流程。Quartz.NET不仅支持简单的定时...
Cron表达式由六个或七个由空格分隔的时间字段组成,可用于设定各种周期性的作业调度计划。 Cron表达式的六个基本时间字段包括: 1. 秒(0-59) 2. 分钟(0-59) 3. 小时(0-23) 4. 日期(1-31) 5. 月份(1-12或...
通过集成Cron表达式,Quartz允许用户以Cron格式定义任务的执行时间,极大地简化了定时任务的设定。例如,你可以设定一个任务每天早上8点30分执行,只需要将`0 30 8 * * ?`这个Cron表达式传递给Quartz的JobDetail即可...
- **时间精度**:可以设置任务在一天中的任意时间点执行,精确到毫秒。 - **周/月/年周期**:可以设置任务在每周、每月或每年的特定日期执行。 - **排除特定日期**:如节假日等特殊日期可以从任务执行列表中排除。 -...
Quartz的主要功能是安排作业(Job)在特定的时间点执行,这些作业可以是任何实现了Quartz接口的任务,比如数据处理、文件传输、邮件发送等。作业调度在现代企业应用中扮演着至关重要的角色,因为它能够自动化执行...
Quartz是一款开源的作业调度框架,它允许开发者创建、组织和执行定时任务。在Java开发中,Quartz常被用于实现后台任务的自动化执行,比如数据同步、邮件发送等。本教程将深入探讨如何实现一个完整的Quartz集群应用...
- **SimpleTrigger**:可以在一个指定时间段内执行一次任务或按指定的时间间隔重复执行任务。 - **CronTrigger**:基于Cron表达式来定义更复杂的触发规则,例如“每小时执行一次”或“每周一至周五上午9点执行”。...
接下来,创建Trigger来指定Job的执行时间,这可以通过`org.quartz.CronScheduleBuilder`或者`org.quartz.SimpleScheduleBuilder`来完成。最后,将Job和Trigger注册到Scheduler中,启动Scheduler,这样任务就会按照...
Quartz是James House开发的一个强大、开放且可扩展的作业调度库,它为Java应用程序提供了调度功能,可以执行周期性的任务,如数据备份、系统检查等。Quartz支持 cron 表达式、简单触发器和复合触发器等多种任务调度...
### Quartz开发指南详解 #### 一、Quartz概述 **Quartz** 是一款开源的、功能强大的、可移植的任务调度框架。...通过对上述知识点的理解和实践,开发者可以充分利用Quartz的强大功能来满足不同的应用场景需求。
3. **触发器(Trigger)**: 触发器负责控制作业的执行时间和频率。Quartz支持多种类型的触发器,如SimpleTrigger、CronTrigger等。 4. **作业存储(Job Store)**: 用于存储作业和触发器的状态信息。Quartz提供了多种...
- **触发器**:可以选择 SimpleTrigger 或 CronTrigger 来决定任务的执行时间。CronTrigger 可以按照 cron 表达式灵活设定执行周期。 2. **Quartz 集群部署** - **集群原理**:Quartz 集群是通过共享 JobStore ...
3. **集群配置**:配置Quartz集群涉及到多个方面,包括设置`org.quartz.scheduler.instanceId`为`AUTO`以自动获取唯一ID,配置`org.quartz.jobStore.clusterCheckinInterval`来设定节点心跳检查的间隔时间,以及设置...