package com.a2563; import static org.quartz.CronScheduleBuilder.cronSchedule; import static org.quartz.JobBuilder.newJob; import static org.quartz.TriggerBuilder.newTrigger; import org.apache.logging.log4j.Logger; import org.quartz.Job; import org.quartz.JobDetail; import org.quartz.JobKey; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.Trigger; import org.quartz.TriggerKey; import org.quartz.impl.StdSchedulerFactory; /** * 类名:QuartzManager <br/> * 功能:<br/> * 详细:Quartz增、删、改工具类 <br/> * 作者: Tliu <br/> * 日期:2015-7-17 <br/> */ public class QuartzUtils { private Logger log = null; private Scheduler scheduler = null; public static final String DATA_KEY = "STATE_DATA"; public QuartzUtils (){ try { log = org.apache.logging.log4j.LogManager.getLogger(); scheduler = new StdSchedulerFactory().getScheduler(); log.info("初始化调度器 "); } catch (SchedulerException ex) { log.error("初始化调度器=> [失败]:" + ex.getLocalizedMessage()); } } public void addJob(String name, String group, Class<? extends Job> clazz,String cronExpression) { try { //构造任务 JobDetail job = newJob(clazz) .withIdentity(name, group) .build(); //构造任务触发器 Trigger trg = newTrigger() .withIdentity(name, group) .withSchedule(cronSchedule(cronExpression)) .build(); //将作业添加到调度器 scheduler.scheduleJob(job, trg); log.info("创建作业=> [作业名称:" + name + " 作业组:" + group + "] "); } catch (SchedulerException e) { e.printStackTrace(); log.error("创建作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]"); } } public void removeJob(String name, String group){ try { TriggerKey tk = TriggerKey.triggerKey(name, group); scheduler.pauseTrigger(tk);//停止触发器 scheduler.unscheduleJob(tk);//移除触发器 JobKey jobKey = JobKey.jobKey(name, group); scheduler.deleteJob(jobKey);//删除作业 log.info("删除作业=> [作业名称:" + name + " 作业组:" + group + "] "); } catch (SchedulerException e) { e.printStackTrace(); log.error("删除作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]"); } } public void pauseJob(String name, String group){ try { JobKey jobKey = JobKey.jobKey(name, group); scheduler.pauseJob(jobKey); log.info("暂停作业=> [作业名称:" + name + " 作业组:" + group + "] "); } catch (SchedulerException e) { e.printStackTrace(); log.error("暂停作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]"); } } public void resumeJob(String name, String group){ try { JobKey jobKey = JobKey.jobKey(name, group); scheduler.resumeJob(jobKey); log.info("恢复作业=> [作业名称:" + name + " 作业组:" + group + "] "); } catch (SchedulerException e) { e.printStackTrace(); log.error("恢复作业=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]"); } } public void modifyTime(String name, String group, String cronExpression){ try { TriggerKey tk = TriggerKey.triggerKey(name, group); //构造任务触发器 Trigger trg = newTrigger() .withIdentity(name, group) .withSchedule(cronSchedule(cronExpression)) .build(); scheduler.rescheduleJob(tk, trg); log.info("修改作业触发时间=> [作业名称:" + name + " 作业组:" + group + "] "); } catch (SchedulerException e) { e.printStackTrace(); log.error("修改作业触发时间=> [作业名称:" + name + " 作业组:" + group + "]=> [失败]"); } } public void start() { try { scheduler.start(); log.info("启动调度器 "); } catch (SchedulerException e) { e.printStackTrace(); log.error("启动调度器=> [失败]"); } } public void shutdown() { try { scheduler.shutdown(); log.info("停止调度器 "); } catch (SchedulerException e) { e.printStackTrace(); log.error("停止调度器=> [失败]"); } } }
相关推荐
Spring4.X与Quartz2.X是两个在企业级Java应用中广泛使用的开源框架。Spring是一个全面的、模块化的应用开发框架,它简化了Java EE应用的开发,提供了强大的依赖注入、AOP(面向切面编程)以及丰富的数据访问支持。而...
在Quartz 2.1.x版本中,这个强大的工具提供了许多关键功能和改进,以适应各种复杂的调度需求。本帮助手册将深入探讨这些特性和用法。 首先,Quartz的核心概念包括Job(工作)、Trigger(触发器)和Scheduler(调度...
**Spring2.x集成Quartz调度框架** 在Java应用开发中,常常需要进行任务调度,例如定时执行某些业务逻辑。Quartz是一款强大的、开源的作业调度框架,它支持复杂的调度策略和集群环境。Spring框架则提供了良好的企业...
通过以上信息,我们可以看到Quartz.Net3.0.X为.NET开发者提供了一套强大的工具来管理定时任务,它的灵活性、可靠性和易用性使其成为.NET平台上进行作业调度的理想选择。结合实际项目需求,开发者可以充分利用Quartz...
《Spring+3.x企业应用开发实战》是一本深入讲解如何使用Spring框架进行企业...总之,《Spring+3.x企业应用开发实战》的光盘源码为学习和掌握Spring 3.x框架提供了宝贵的实践资源,是提升Spring开发技能的重要辅助工具。
2. **WebFlux**:SpringBoot 2.x 引入了对Reactive编程的支持,通过WebFlux模块,可以构建非阻塞式的Web应用,提高系统性能和可伸缩性。 3. **Actuator增强**:Actuator是用于监控和管理SpringBoot应用的组件,在2....
在压缩包 "Spring3+Quartz2" 中,可能包含的是一个 Spring 3.x 版本与 Quartz2 结合使用的示例项目,你可以通过解压并运行该项目,学习如何在实际项目中实现类似的功能。记得根据你的具体需求进行适当的修改和配置。
总的来说,"Quartz.NET-2.1.2_DLL文件.rar"是一个方便的工具,可以快速集成定时任务功能到你的.NET应用程序中,无论是简单的周期性任务还是复杂的调度逻辑,Quartz.NET都能提供灵活且强大的解决方案。只需简单地引入...
6. **配置 Scheduler**:创建 `SchedulerFactoryBean`,它是 Spring 提供的用于管理 Quartz Scheduler 的工具类,通过设置 JobDetails 和 Triggers,将它们绑定到 Scheduler 中。 7. **启动 Scheduler**:在应用...
### 关于《使用Quartz 2D与PDF图形在Mac OS X编程》的知识点解析 #### 一、Quartz 2D与PDF图形基础 **Quartz 2D**是苹果为Mac OS X和iOS提供的核心图形处理框架之一。它为开发者提供了高级的2D绘图功能,包括路径...
本项目“Springboot2-Quartz 后台可动态配置的定时任务”是基于SpringBoot 2.x版本与Quartz Scheduler整合的一个示例,它展示了如何在后台管理系统中动态地创建、更新和删除定时任务,以及监控这些任务的状态,为...
1. **添加依赖**:将Quartz的jar包(如`quartz-x.x.x.jar`)添加到项目的类路径下,如果使用Maven或Gradle,需要在对应的配置文件中添加依赖。 2. **编写Job类**:创建一个实现`org.quartz.Job`接口的类,并重写`...
标题中的“spring4 quartz2 定时执行”指的是在Spring框架4.x版本中集成Quartz 2.x库来实现任务调度的功能。Quartz是一个开源的作业调度框架,它允许应用程序定义定时任务,而Spring框架则提供了与Quartz的无缝集成...
3. `common-lang3.jar`:Apache Commons Lang库,提供了一些Java语言的实用工具类。 4. `common-collections.jar`:Apache Commons Collections库,提供了集合操作的扩展。 在使用Quartz时,首先需要配置Scheduler...
Quartz是一款广泛应用于Java环境...从基础的Job和Trigger创建,到复杂的调度策略和集群部署,Quartz都提供了强大的工具和灵活性。无论你是初学者还是经验丰富的开发者,都可以通过这个资源进一步提升你的任务调度能力。
在IT行业中,Spring框架和Quartz是两个广泛用于任务调度的重要工具。Spring提供了一种集成Quartz的方式,使得我们可以方便地在Spring应用中管理和执行定时任务。本篇将深入探讨如何在Spring中启动和停止Quartz定时器...
《Spring4与Quartz2整合应用详解》 在企业级应用开发中,任务调度是一项重要的功能,用于执行定时任务,例如数据同步、报表生成等。Spring4和Quartz2是两个常用的开源框架,Spring提供了强大的依赖注入和面向切面...
2. **坐标系统**:Quartz2D使用笛卡尔坐标系统,原点位于视图的左上角,X轴向右延伸,Y轴向下延伸。你可以通过修改坐标系统来适应不同的布局需求。 3. **路径(Paths)**:路径是由直线、曲线和封闭形状组成的几何...
总之,Quartz2D是iOS开发中的一个重要工具,它让我们能够实现高度定制的用户界面,创造出独特且富有表现力的应用程序。通过熟练掌握Quartz2D,开发者可以提升应用的用户体验,打造引人入胜的视觉效果。
《Spring 3.x 企业应用实战开发-源码》是一份深入探讨Spring框架在实际企业应用中的实践指南,其中包含了从第二章到第十九章的完整源代码。这份资料是学习和理解Spring 3.x核心特性和实际应用场景的宝贵资源。下面...