/**
* 增加定时任务
*/
@Override
public void addJob(TaskTrggerInfo trggerInfo) throws Exception {
Scheduler scheduler=StdSchedulerFactory.getDefaultScheduler();
JobDataMap jobDataMap = new JobDataMap();
// 需要保存spring的bean类 才能反射出 调用方法
jobDataMap.put("targetObject",
springUtil.getBean(trggerInfo.getTargetObject()));
// 调用方法
jobDataMap.put("targetMethod", trggerInfo.getTargetMethod());
jobDataMap.put("shouldRecover", "true");
JobDetail jobDetail=new JobDetail();
jobDetail.setGroup(GROUP);
jobDetail.setName(trggerInfo.getJobName());
jobDetail.setJobClass(MethodInvokingJobDetailFactoryBean.MethodInvokingJob.class);
jobDetail.setJobDataMap(jobDataMap);
//设置触发器
CronTrigger cronTrigger = new CronTrigger(trggerInfo.getJobName()+"_Trigger",GROUP);
// 设置任务触发时间
CronExpression cexp = new CronExpression(trggerInfo.getCronExpression());
// 设置触发器
cronTrigger.setCronExpression(cexp);
scheduler.scheduleJob(jobDetail, cronTrigger);
// scheduler.addJob(jobDetail, true);
}
/**
* 删除定时任务
*/
@Override
public void deleteJob(String jobName, String jobGroup) throws Exception {
Scheduler scheduler=StdSchedulerFactory.getDefaultScheduler();
scheduler.deleteJob(jobName, jobGroup);
}
/**
* 暂停订时任务
*/
@Override
public void updatePauseTrigger(String triggerName, String group)
throws Exception {
Scheduler scheduler=StdSchedulerFactory.getDefaultScheduler();
scheduler.pauseTrigger(triggerName, group);
}
/**
* 重启任务
*/
@Override
public void updateResumeTrigger(String triggerName, String group)
throws Exception {
Scheduler scheduler=StdSchedulerFactory.getDefaultScheduler();
//先停止
scheduler.pauseTrigger(triggerName, group);
//在重启
scheduler.resumeTrigger(triggerName, group);
}
/**
* 重置cron类型的任务表达式
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void rescheduleJob(TaskTrggerInfo taskTrggerInfo) throws Exception{
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
CronTrigger cronTrigger = new CronTrigger();
//设置触发器名称
cronTrigger.setName(taskTrggerInfo.getTriggerName());
//设置分组信息
cronTrigger.setGroup(taskTrggerInfo.getJobGroup());
//设置任务名称
cronTrigger.setJobName(taskTrggerInfo.getJobName());
//设置任务分组
cronTrigger.setJobGroup(taskTrggerInfo.getJobGroup());
// 设置任务触发表达式
CronExpression cexp = new CronExpression(taskTrggerInfo.getCronExpression());
// //设置触发器
cronTrigger.setCronExpression(cexp);
scheduler.rescheduleJob(taskTrggerInfo.getTriggerName(), taskTrggerInfo.getJobGroup(), cronTrigger);
//更新任务详情
updateTaskInfo(taskTrggerInfo);
}
分享到:
相关推荐
当我们谈论"springquartz动态任务"时,我们实际上是在讨论如何将Quartz与Spring框架集成,实现任务的动态管理,包括任务的添加、删除等功能。 首先,Spring对Quartz的集成使得我们可以利用Spring的依赖注入(DI)和...
### Spring + Quartz 动态任务方案详解 #### 一、Spring与Quartz简介及整合背景 Spring 是一款轻量级的 Java 开发框架,旨在简化企业级应用开发过程中的复杂性,提供了一套完整的解决方案,包括但不限于依赖注入、...
Spring Quartz 动态暂停、恢复、修改定时任务的一个demo,使用maven构建,框架采用spring springmvc jpa,数据库mysql,含数据库脚本,运行可用,页面访问地址http://localhost:8080/quartz_demo/quartz/list
基于Spring的Quartz动态定时任务增删改查,代码简洁。后端采用SpringMvc+Spring+Mybatis+Quartz,前端采用Bootstrap框架,数据库采用MySQL;完成定时任务动态任务初始化,增删改查
使用 Spring Quartz,我们可以轻松地实现动态配置时间,触发相应的任务,从而提高系统的灵活性和可维护性。 系统架构 在本文中,我们假设了一个基于 Struts、Spring 和 Hibernate 的系统架构,旨在提供一个更加...
在Java开发中,Spring框架与Quartz库的结合使用能够帮助开发者实现强大的定时任务功能。本文将详细解析“spring quartz定时任务demo”这个项目,它提供了实现Java定时任务的实例,便于快速理解和应用。 首先,...
Java Spring Quartz 动态定时任务是企业级应用中常见的需求,用于执行周期性的后台作业,如数据同步、报表生成等。Spring与Quartz的结合使用,使得我们可以方便地在Spring框架下管理定时任务,同时还能实现任务的...
**Spring+Quartz动态定时任务创建** 将Spring与Quartz结合,我们可以方便地在运行时动态创建和修改定时任务。首先,我们需要在Spring配置文件中声明一个SchedulerFactoryBean,然后定义JobDetail和Trigger,分别表示...
Spring Quartz定时任务是Java开发中常见的一种任务调度框架,它结合了Spring的优秀特性与Quartz的灵活性,使得开发者能够方便地在应用中实现定时任务的管理。在本压缩包中,包含的是`log4j-1.2.14.jar`这个日志处理...
在IT行业中,构建高效、可扩展的Web应用是至关重要的,而"spring+springMVC+mybatis+quartz动态定时任务创建"就是一个常见的技术栈,用于实现这样的目标。这个组合充分利用了各组件的优势,提供了强大的后端服务支持...
另外,Spring还提供了`MethodInvokingJobDetailFactoryBean`,它可以直接将Spring容器中的Bean的方法转换为Quartz任务,无需为Job创建单独的类。这对于那些希望直接利用现有业务服务进行调度的开发者来说非常方便。 ...
项目使用jetty-maven-plugin插件,使用maven运行,运行命令为 clean install jetty:run 默认会生成job.db sqllite文件,可以手动去增加数据查看测试效果
Spring Quartz 是一个强大的任务调度框架,它允许开发者在Java应用中定义和执行定时任务。本实例将探讨如何在Spring框架中集成Quartz,创建并运行一个简单的定时任务。以下是你需要知道的关键知识点: 1. **Quartz...
在给定的配置文件`applicationContext-quartz.xml`中,可以看到Spring如何配置Quartz来动态管理任务调度。以下是一些关键点: 1. **Bean配置**: - `sysScheduleService`:这是一个服务类的bean,实现了任务调度的...
在多应用服务器负载均衡环境下,Spring Quartz定时任务的重复执行问题是一个常见的挑战。Spring Quartz是一个强大的、开源的作业调度框架,允许开发者定义和执行复杂的定时任务。然而,当多个服务器实例并行运行时,...
Spring整合Quartz 2.2.3是Java开发者在实现定时任务时常用的一种技术组合。Quartz是一款开源的作业调度框架,它允许程序在特定时间执行预定的任务,而Spring则是一个强大的企业级应用开发框架,提供了丰富的依赖注入...
Spring和Quartz是两个强大的工具,可以协同工作来实现动态管理的定时任务。本文将深入探讨如何利用Spring框架和Quartz库创建和管理这些任务。 **Spring框架** 是一个广泛应用的Java企业级开发框架,它提供了丰富的...
6. **最佳实践**:关于如何优化Quartz任务配置,减少资源消耗,以及如何处理任务异常等方面的建议。 标签中的“源码”可能意味着博客或工具会涉及Quartz和Spring的源代码解析,帮助读者理解内部工作原理。而“工具...
通过在Spring的配置文件中定义bean,可以轻松地将Quartz任务纳入Spring的管理范围。 3. **中文注解** 在项目中使用中文注解有助于中国开发者的理解和使用,这使得代码更易读,特别是对于那些不熟悉英文文档的...