SpringBoot—动态修改定时任务cron参数
来源:互联网 发布:网络兼职被骗如何解决 编辑:程序博客网 时间:2024/06/01 09:39
动态修改定时任务cron参数
不需要重启应用就可以动态的改变Cron表达式的值
不能使用@Scheduled(cron = “${jobs.cron}”)实现
代码如下:
@Servicepublic class ScheduledForDynamicCron 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; @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.addTriggerTask(() -> { // 定时任务的业务逻辑 System.out.println("动态修改定时任务cron参数,当前时间:" + dateFormat.format(new Date())); }, (triggerContext) -> { // 定时任务触发,可修改定时任务的执行周期 CronTrigger trigger = new CronTrigger(cron); Date nextExecDate = trigger.nextExecutionTime(triggerContext); return nextExecDate; }); } public void setCron(String cron) { System.out.println("当前cron="+this.cron+"->将被改变为:"+cron); this.cron = cron; }}
@RestController@RequestMapping("/dynamic-scheduled")public class DynamicScheduledController { @Autowired ScheduledForDynamicCron scheduledForDynamicCron; @RequestMapping(value = "/update-cron") public String updateDynamicScheduledTask(@RequestParam("cron") String cron) { scheduledForDynamicCron.setCron(cron); return "success"; }
@SpringBootApplication@EnableScheduling@ComponentScan(basePackageClasses = MytestApplication.class, excludeFilters = @ComponentScan.Filter(SpringBootApplication.class))public class MytestApplication { public static void main(String[] args){ SpringApplication.run(MytestApplication.class, args); }}
运行结果:
动态修改定时任务cron参数,当前时间:20:34:40动态修改定时任务cron参数,当前时间:20:34:45动态修改定时任务cron参数,当前时间:20:34:50动态修改定时任务cron参数,当前时间:20:34:552017-05-14 20:34:57.855 INFO 9939 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'2017-05-14 20:34:57.855 INFO 9939 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started2017-05-14 20:34:57.866 INFO 9939 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 11 ms当前cron=0/5 * * * * ?->将被改变为:0/10 * * * * ?动态修改定时任务cron参数,当前时间:20:35:00动态修改定时任务cron参数,当前时间:20:35:10动态修改定时任务cron参数,当前时间:20:35:20动态修改定时任务cron参数,当前时间:20:35:30动态修改定时任务cron参数,当前时间:20:35:40动态修改定时任务cron参数,当前时间:20:35:50
0 0
- SpringBoot—动态修改定时任务cron参数
- Spring @Scheduled定时任务动态修改cron参数
- Spring Scheduled定时任务动态修改cron参数
- Spring @Scheduled定时任务动态修改cron参数
- Spring Boot 菜鸟教程 14 动态修改定时任务cron参数
- SpringBoot定时任务@EnableScheduling和cron表达式
- SpringBoot定时任务及Cron表达式详解
- springboot 中定时任务cron表达式
- SpringBoot定时任务及Cron表达式详解
- 基于springboot ThreadPoolTaskScheduler类实现定时任务动态添加修改
- spring定时任务@Scheduled cron参数配置
- springboot自带定时器实现定时任务的开启关闭以及动态修改定时规则
- 定时任务cron
- linux定时任务cron
- Linux定时任务cron
- centos定时任务cron
- 定时任务 Cron 格式
- cron 定时任务
- C++开源库 整理 中
- vi文本编辑器(三)
- static
- Javascript实践之时间显示效果
- vi文本编辑器(一)
- SpringBoot—动态修改定时任务cron参数
- HashMap源码解析
- spark 从1.x 转到2.x,编写程序的的一些区别
- (17)内容你浏览器之源面板
- Leetcode 520
- Horde3D——基于C++编写的3D渲染引擎
- android技术篇(二)解锁System分区
- 比较运算符compareTo()、equals()、==之间的区别
- 常对象成员