【最新动态】
SpringBoot微信公众号最新更新《201. Spring Boot JNDI:Spring Boot中怎么玩JNDI》
à Spring Boot 2.0 之Spring Data 和JPA视频
说明:
(2)Quartz版本:2.3.0
前言:
在前面我们讲到了任务的持久化了,但是在实际项目中,我们的PD还是会提出更高的需求的,比如:这个任务突然间,我不想要了,我想删除掉,但我也理解程序猿(媛)的痛苦,也不想让你们改代码,能不能给我按钮,我自己操作。程序员哥哥和程序员MeiMei听到后: 我的哥呀,我还是改代码吧,注释一行就搞定的事情,为什么这么折磨俺呢?
一、需求分析
虽然当下我们只需要注释掉定时任务的一两行代码,但是也经不起每次的注释掉再打开的折磨,所以从长期维护和管理的角度来说的,这个需求我们还是要满足的。那么就要了解PD的要求了,到底想要什么?就是任务能够动态的进行管理
那么任务动态管理都包括哪些呢?
(2)动态删除任务:在应用程序运行的过程中,动态的删除一个定时任务;
(3)动态修改任务:在应用程序运行的过程中,动态的修改一个定时任务,这里的修改主要是修改定时任务的时间;
(4)动态关闭所有任务:在应用程序运行的过程中,动态的关闭所有定时任务,也就是当前正在运行的定时任务统统停掉;
(5)动态启动所有任务:在应用程序运行的过程中,动态的启动所有定时任务,也就是把所有暂停的定时任务都启动起来;
哦了,这需求实在是太清楚了,哥哥,你好棒哦……
二、编码思路
需求明确,那么就是编码,那么如何动态任务添加呢?
(2)任务如何定义:使用JobBuilder就可以定义job;
(3)定时任务谁管理:这是由定时任务调度器Scheduler进行管理的;
(4)定时任务调度器谁管理:由于这里我们使用了Spring集成了Quartz,所以这里的Scheduler是由SchedulerFactoryBean进行管理的;
好了这里,你是不是已经知道如何进行编码了?那就说到这里吧,我闪了….
……
……
三、动态任务管理:动态添加任务
老师:“小蚂蚁(为啥不是小姨子捏,这不小姨子跟着浙江温州皮革厂的老板跑路了嘛),写好了嘛…. 我看看,写的不错,差不多就是这个意思了。”
那我们来看看小蚂蚁的代码(代码支持,手机端左右滑动):
@Service
public class QuartzJobManager {
@Autowired
private SchedulerFactoryBean schedulerFactoryBean;
public Date addJob(String jobName,String jobGroupName,String triggerName,String triggerGroupName,Class jobClass, String cronExpression) {
Scheduler scheduled = schedulerFactoryBean.getScheduler();
//job定义: // 任务名,任务组,任务执行类
JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(jobName, jobGroupName).build();
//触发器构建
Trigger trigger = TriggerBuilder.newTrigger().withIdentity(triggerName, triggerGroupName).withSchedule(CronScheduleBuilder.cronSchedule(cronExpression)).build();
try {
return scheduled.scheduleJob(jobDetail, trigger);
} catch (SchedulerException e) {
e.printStackTrace();
return null;
}
}
}
老师:“小蚂蚁,写的不错,大体就是这样子的,为啥有一个返回值呢?还是date类型的?”
小蚂蚁:“老师,你就不懂了,这个叫做:Compute First Fire Time。”
老师:“纳尼,这是虾米鬼?”
小蚂蚁:“^_^,老师你也有不懂的时候呀,这个叫“第一次射的时间”?”
老师:“什么‘第一次射的时间’,小蚂蚁你又调皮了,好好说人话。”
小蚂蚁:“是的,老师,这个呢,叫做‘第一次触发时间’: 是schedule在启动时会调用的计算触发器第一次触发的时间。“
老师:“SO DES NI, 小蚂蚁你真是聪明,老师看好你。老师还有问题要问题:如果重复执行添加任务,也就是多次调用了addJob会怎么样呢?”
小蚂蚁:老师,就知道你会问我这个问题,这个嘛?多次添加的话,参数一样的情况下,后一次添加的是无法正常添加的,会抛出一个异常(此异常不会影响到已经在运行的定时任务的):
Unable to store Job : 'myjob.myjob2', because one already exists with this identification.
我什么都不想说了,小蚂蚁你已经出师了…. 不需要为师了…. 剩下的路你靠你自己走吧,你就是你,一只让我骄傲的小蚂蚁。
老师你看,有了小蚂蚁的这个addJob方法,那么就可以在别的地方进行调用,添加一个任务啦:
quartzJobManager.addJob("myjob2","myjob", "myjob2Trigger","myjobTrigger", MyJob2.class, "0/3 * * * * ?");
老师:“好了,小蚂蚁剩下的就你自己搞了,老师要回家吃饭了”。
小蚂蚁:”GeMing尚未成功,回家吃什么饭,况且家里有饭吃嘛。”
老师:”小蚂蚁,你在嘀咕什么?老师,没,没什么,你老,一路走好”。
小蚂蚁:”什么?你是要气死为师嘛(咳嗽声…)…. ”
à悟空学院:https://t.cn/Rg3fKJD
学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!
SpringBoot视频:http://t.cn/A6ZagYTi
Spring Cloud视频:http://t.cn/A6ZagxSR
SpringBoot Shiro视频:http://t.cn/A6Zag7IV
SpringBoot交流平台:https://t.cn/R3QDhU0
SpringData和JPA视频:http://t.cn/A6Zad1OH
SpringSecurity5.0视频:http://t.cn/A6ZadMBe
Sharding-JDBC分库分表实战:http://t.cn/A6ZarrqS
分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr
相关推荐
本项目是一个基于Spring Boot和Quartz的任务调度系统,旨在提供灵活的任务管理和调度功能。系统支持多种任务类型,包括Cron表达式任务和单次时间任务,并提供了丰富的任务管理接口。 主要功能 任务调度支持Cron...
Spring Boot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、RabbitMQ、Quartz 等,使得开发者可以“零配置”地启动项目,...
总结,Spring Boot 2.0整合Quartz简化了定时任务的开发流程,使得我们可以专注于任务逻辑,而不是底层的调度配置。这得益于Spring Boot的自动配置能力以及对Quartz的良好支持。通过上述步骤,开发者可以快速地在项目...
5. **任务调度**:Spring Boot 结合 Spring Batch 或 Quartz 实现定时任务,比如定期生成报表或清理过期数据。 6. **API 文档**:使用 Swagger 或其他工具,可以自动生成 RESTful API 的文档,方便开发者理解和使用...
在Spring Boot 2.0中整合Quartz定时任务,可以实现基于数据库如MySQL的动态任务管理,这在很多需要周期性执行任务的应用场景中非常实用。以下将详细讲解这一过程。 首先,我们要在项目的`pom.xml`文件中添加Quartz...
lenos一款Spring Boot 2.0快速开发模块化脚手架,采用spring boot 2.0.1、spring、SpringMvc、mybatis、shiro、activiti工作流、swagger、ehcache、redis、quartz、freemarker、layui技术开发;博客采用vue前后分离...
lenos一款Spring Boot 2.0快速开发模块化脚手架,采用spring boot 2.0.1、spring、SpringMvc、mybatis、shiro、activiti工作流、swagger、ehcache、redis、quartz、freemarker、layui技术开发;博客采用vue前后分离...
- 核心框架:Spring Boot 2.0 - 安全框架:Apache Shiro 1.4 - 视图框架:Jfinal Enjoy - 持久层框架:Jfinal ORM - 定时器:Quartz 2.3 - 数据库连接池:Druid 1.0 - 日志管理:logback - 页面交互:Vue2.x ...
Spring Boot 2.0 设置网站默认首页的实现代码 Spring Boot 2.0 设置网站默认首页的实现代码是指在 Spring Boot 2.0 框架中如何设置网站的默认首页。以下是实现代码的详细介绍: 首先,需要在 `/src/main/resources...
在"spring-boot2.0整合mybatis-plus例子"中,我们将会看到如何将 Spring Boot 和 MyBatis-Plus 结合使用,以实现更高效、更便捷的数据库操作。下面是一些关键步骤和知识点: 1. **添加依赖**:在 `pom.xml` 文件中...
ybg2.0 已经停止框架开发 ,停止框架(报表填报业务) 地址 ybg3.0 基于springboot2开发 ,停止框架 地址 ybg4.0 基于权限服务器,微服务化开发 (维护中) 地址 QQ群:314658875(免费),310391018(免费) 声明,...
- 引入quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能 - 页面交互使用Vue2.x,极大的提高了开发效率 - 引入swagger文档支持,方便编写API接口文档 **数据权限设计思想** - ...
Springboot学习示例 博客文章链接 (15)Spring Boot2.0 和邮件 (16)Spring Boot2.0 整合Spring Security (17)Spring Boot2.0 整合Shiro (18)Spring Boot2.0 与监控管理
项目演示注意:目前项目部署在heroku,因为使用免费dyno,连续没有http请求服务器会进入到Hibernate状态,所以第一次访问会有一些许久延迟,请耐心等待,另外因为目前只是尝试开发的演示版本,和本地环境下的样式或...
它集成了大量常用的第三方库配置,如JDBC、MongoDB、JPA、RabbitMQ、Quartz等,只需添加相应依赖即可自动配置。在本项目中,Spring Boot作为核心框架,负责处理后端逻辑,提供RESTful API接口,与微信小程序进行交互...
要将 Quartz 整合到 Spring Boot 2.0 项目中,首先需要添加 QuartJob 依赖项,然后配置 Quartz 的参数。 项目结构版本描述: * spring-boot:2.1.3.RELEASE * quart-job:2.3.0 定时器配置: 使用 @...
Active4j-Boot目前内置了部门管理、用户管理、角色管理、菜单管理、数据数据字典、定时任务、常用系统监控等基础功能,并内置了文件上传下载、导入导出、微信支付、支付宝支付、短信功能、邮件发送等常用工具,整合...
它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者可以快速地创建一个独立运行的、生产级别的基于 Spring 的应用。 在提供的压缩包 "SpringBoot api接口入门级示例源码.zip...
lenos(p为spring boot 2.0 版本扩展名)一款快速开发模块化脚手架,采用spring boot 2.0.1、spring、SpringMvc、mybatis、shiro、activiti工作流、swagger、ehcache、redis、quartz、freemarker、layui技术开发;...
Active4j-Boot目前内置了部门管理、用户管理、角色管理、菜单管理、数据数据字典、定时任务、常用系统监控等基础功能,并内置了文件上传下载、导入导出、微信支付、支付宝支付、短信功能、邮件发送等常用工具,整合...