Spring Boot 动态修改定时任务cron参数
动态修改定时任务cron参数
不需要重启应用就可以动态的改变Cron表达式的值不能使用@Scheduled(cron = "${jobs.cron}")实现
动态定时任务类DynamicScheduledTask
package com.jege.spring.boot.task;import java.text.SimpleDateFormat;
import java.util.Date;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.Trigger;
import org.springframework.scheduling.TriggerContext;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;import com.jege.spring.boot.data.jpa.entity.User;
import com.jege.spring.boot.data.jpa.repository.UserRepository;/*** 动态修改定时任务cron参数*/
@Component
public class DynamicScheduledTask implements SchedulingConfigurer {private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");private static final String DEFAULT_CRON = "0/5 * * * * ?";private String cron = DEFAULT_CRON;@Autowiredprivate UserRepository userRepository;@Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegistrar) {taskRegistrar.addTriggerTask(new Runnable() {@Overridepublic void run() {if (!cron.equals(DEFAULT_CRON)) {User user = new User("je_ge", 20);userRepository.save(user);}// 定时任务的业务逻辑System.out.println("动态修改定时任务cron参数,当前时间:" + dateFormat.format(new Date()));}}, new Trigger() {@Overridepublic Date nextExecutionTime(TriggerContext triggerContext) {// 定时任务触发,可修改定时任务的执行周期CronTrigger trigger = new CronTrigger(cron);Date nextExecDate = trigger.nextExecutionTime(triggerContext);return nextExecDate;}});}public void setCron(String cron) {this.cron = cron;}
}
启动类Application添加@EnableScheduling标注
@EnableScheduling
控制器UserController
@Autowired
DynamicScheduledTask dynamicScheduledTask;// 更新动态任务时间
@RequestMapping("/updateDynamicScheduledTask")
@ResponseBody
public AjaxResult updateDynamicScheduledTask() {dynamicScheduledTask.setCron("0/10 * * * * ?");return new AjaxResult().success();
}
user.jsp页面添加按钮方法
updateDynamicScheduledTask : function() {//动态修改定时任务$.get("/user/updateDynamicScheduledTask", function(data) {if (data.meta.success) {//动态修改定时任务成功$.messager.alert('成功提示', "请重新刷新数据,有插入新的数据", 'info');} else {$.messager.alert('错误提示', data.meta.message, 'error');}}, 'json');
}<a href="javascript:void(0)" class="easyui-linkbutton c8" iconCls="icon-search" data-url="updateDynamicScheduledTask">动态修改定时任务</a>
如果感觉不错的话记得点赞哟!!!
Spring Boot 动态修改定时任务cron参数相关推荐
- Spring Boot动态修改日志级别
1. pom中引入 org.springframework.boot spring-boot-starter-actuator 2. 发送POST请求: 地址: http://[服务地址] ...
- spring boot 动态切换数据源实现多租户开发
之前的文章有介绍过spring boot 动态切换数据源spring boot 动态切换数据源(数据源信息从数据库中读取)_lgq2016的博客-CSDN博客,今天简单介绍一下动态数据源切换实战,主要 ...
- 如何在Spring boot中修改默认端口
文章目录 介绍 使用Property文件 在程序中指定 使用命令行参数 值生效的顺序 如何在Spring boot中修改默认端口 介绍 Spring boot为应用程序提供了很多属性的默认值.但是有时 ...
- Spring Boot:在Spring Boot中使用定时任务
2019独角兽企业重金招聘Python工程师标准>>> 本文主要介绍如何在Spring Boot中使用定时任务,假设你已经建好了一个基础的Spring Boot项目.首先,我们在项目 ...
- (转)Spring Boot(九):定时任务
http://www.ityouknow.com/springboot/2016/12/02/spring-boot-scheduler.html 在我们开发项目过程中,经常需要定时任务来帮助我们来做 ...
- Spring Boot如何优雅的校验参数
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「乱敲代码」 做web开发有一点很烦人就 ...
- Spring Boot 动态数据源(Spring 注解数据源)
本文实现案例场景: 某系统除了需要从自己的主要数据库上读取和管理数据外,还有一部分业务涉及到其他多个数据库,要求可以在任何方法上可以灵活指定具体要操作的数据库. 为了在开发中以最简单的方法使用,本文基 ...
- Spring Boot 如何优雅的校验参数?
今天介绍一下 Spring Boot 如何优雅的整合JSR-303进行参数校验,说到参数校验可能都用过,但网上的教程大多是简单的介绍,所以我们今天详细看来一下 . 什么是 JSR-303? JSR-3 ...
- Spring Boot 动态数据源(多数据源自己主动切换)
本文实现案例场景: 某系统除了须要从自己的主要数据库上读取和管理数据外.另一部分业务涉及到其它多个数据库,要求能够在不论什么方法上能够灵活指定详细要操作的数据库. 为了在开发中以最简单的方法使用,本文 ...
最新文章
- 提高博客访问量14种方法
- CImage与OpenCV兼容问题
- c++已知2点求中垂线_电力系统负荷预测-基本方法以及分析(2)
- 详述 ISC BIND 服务器中的信息泄露漏洞
- style样式包(HTML、CSS)
- CDH6.2.1安装Kafka出现的问题
- linux使用vim同时打开文件,VIM 在同一个窗口中同时编辑多个文件
- AAAI'22 | 多模态摘要任务中的知识蒸馏和分层语义关联
- (14)机器学习_f1,auc值
- 随机过程(三):马尔可夫过程、马尔可夫链、转移概率、转移概率矩阵、平稳性、齐次性、时齐性、一步转移概率、一步转移概率矩阵、C-K方程、n步转移概率、n步转移概率矩阵、遍历性、极限分布、平稳分布
- 人工智能顶级会议与国际期刊总结
- Bootstrap框架----标签Tag输入用法--Bootstrap-tagsinput
- Android核心 intent基础
- USB设备运行不正常,windows无法识别的问题
- 虽说中国是礼仪之邦,但是这个礼看来还是没有几个人学透
- javaweb之ajax
- 计算机领域名人事迹及意义,关于电脑的好处的名人名言-关于电脑时代需要练字的相关事例和名人名言?...
- 江苏图采之证件照上传
- 仿网易考拉完整源码+答辩ppt(java+mysql+JavaScript)资源详细说明
- 安卓 linux服务器文件夹,安卓手机目录各个文件夹
热门文章
- fsk调制解调实验报告 matlab,基于MATLAB的-FSK调制与解调-通信原理实验
- JS中使用bignumber处理高精度小数运算
- android svn丢失文件恢复,SVN搭建(以此为准,成功)文后含备份与恢复
- socket和http区别有哪些
- stm32 lwip 如何发送不出_mbedtls | 移植mbedtls库到STM32裸机的两种方法
- cam350怎么看顶层_厉害的人是怎么分析问题的?(实操干货)
- c语言程序中必不可少的,C语言程序设计(第3章程序控制语句)2
- python mad函数_Python函数的基本定义
- fft之后求模值和相位_如何利用相位噪声测量表征时钟抖动来加速设计验证过程...
- java通用异常_Java常用异常整理