动态修改定时任务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参数相关推荐

  1. Spring Boot动态修改日志级别

    1. pom中引入 org.springframework.boot       spring-boot-starter-actuator 2. 发送POST请求: 地址: http://[服务地址] ...

  2. spring boot 动态切换数据源实现多租户开发

    之前的文章有介绍过spring boot 动态切换数据源spring boot 动态切换数据源(数据源信息从数据库中读取)_lgq2016的博客-CSDN博客,今天简单介绍一下动态数据源切换实战,主要 ...

  3. 如何在Spring boot中修改默认端口

    文章目录 介绍 使用Property文件 在程序中指定 使用命令行参数 值生效的顺序 如何在Spring boot中修改默认端口 介绍 Spring boot为应用程序提供了很多属性的默认值.但是有时 ...

  4. Spring Boot:在Spring Boot中使用定时任务

    2019独角兽企业重金招聘Python工程师标准>>> 本文主要介绍如何在Spring Boot中使用定时任务,假设你已经建好了一个基础的Spring Boot项目.首先,我们在项目 ...

  5. (转)Spring Boot(九):定时任务

    http://www.ityouknow.com/springboot/2016/12/02/spring-boot-scheduler.html 在我们开发项目过程中,经常需要定时任务来帮助我们来做 ...

  6. Spring Boot如何优雅的校验参数

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「乱敲代码」 做web开发有一点很烦人就 ...

  7. Spring Boot 动态数据源(Spring 注解数据源)

    本文实现案例场景: 某系统除了需要从自己的主要数据库上读取和管理数据外,还有一部分业务涉及到其他多个数据库,要求可以在任何方法上可以灵活指定具体要操作的数据库. 为了在开发中以最简单的方法使用,本文基 ...

  8. Spring Boot 如何优雅的校验参数?

    今天介绍一下 Spring Boot 如何优雅的整合JSR-303进行参数校验,说到参数校验可能都用过,但网上的教程大多是简单的介绍,所以我们今天详细看来一下 . 什么是 JSR-303? JSR-3 ...

  9. Spring Boot 动态数据源(多数据源自己主动切换)

    本文实现案例场景: 某系统除了须要从自己的主要数据库上读取和管理数据外.另一部分业务涉及到其它多个数据库,要求能够在不论什么方法上能够灵活指定详细要操作的数据库. 为了在开发中以最简单的方法使用,本文 ...

最新文章

  1. 提高博客访问量14种方法
  2. CImage与OpenCV兼容问题
  3. c++已知2点求中垂线_电力系统负荷预测-基本方法以及分析(2)
  4. 详述 ISC BIND 服务器中的信息泄露漏洞
  5. style样式包(HTML、CSS)
  6. CDH6.2.1安装Kafka出现的问题
  7. linux使用vim同时打开文件,VIM 在同一个窗口中同时编辑多个文件
  8. AAAI'22 | 多模态摘要任务中的知识蒸馏和分层语义关联
  9. (14)机器学习_f1,auc值
  10. 随机过程(三):马尔可夫过程、马尔可夫链、转移概率、转移概率矩阵、平稳性、齐次性、时齐性、一步转移概率、一步转移概率矩阵、C-K方程、n步转移概率、n步转移概率矩阵、遍历性、极限分布、平稳分布
  11. 人工智能顶级会议与国际期刊总结
  12. Bootstrap框架----标签Tag输入用法--Bootstrap-tagsinput
  13. Android核心 intent基础
  14. USB设备运行不正常,windows无法识别的问题
  15. 虽说中国是礼仪之邦,但是这个礼看来还是没有几个人学透
  16. javaweb之ajax
  17. 计算机领域名人事迹及意义,关于电脑的好处的名人名言-关于电脑时代需要练字的相关事例和名人名言?...
  18. 江苏图采之证件照上传
  19. 仿网易考拉完整源码+答辩ppt(java+mysql+JavaScript)资源详细说明
  20. 安卓 linux服务器文件夹,安卓手机目录各个文件夹

热门文章

  1. fsk调制解调实验报告 matlab,基于MATLAB的-FSK调制与解调-通信原理实验
  2. JS中使用bignumber处理高精度小数运算
  3. android svn丢失文件恢复,SVN搭建(以此为准,成功)文后含备份与恢复
  4. socket和http区别有哪些
  5. stm32 lwip 如何发送不出_mbedtls | 移植mbedtls库到STM32裸机的两种方法
  6. cam350怎么看顶层_厉害的人是怎么分析问题的?(实操干货)
  7. c语言程序中必不可少的,C语言程序设计(第3章程序控制语句)2
  8. python mad函数_Python函数的基本定义
  9. fft之后求模值和相位_如何利用相位噪声测量表征时钟抖动来加速设计验证过程...
  10. java通用异常_Java常用异常整理