Spring Task 动态修改任务执行计划cron
来源:互联网 发布:linux vncserver 配置 编辑:程序博客网 时间:2024/06/06 00:26
Spring Task 能够在不重启服务的情况下,动态修改批量任务执行时间。
原理:
Spring Task目前仅支持TriggerContext上修改下次执行时间(批量任务执行后回调SchedulingConfigurer.configureTasks,让用户可以重新设置Trigger,从而动态修改下次执行时间)),这种方法的弊端就是“执行时间不能实时生效”。为此,看了下task文档,感觉若要实现实时生效功能,必须代码里手工启动/停止Spring task任务。
Demo如下:
首先,xml里不需要配置springTask相关的executor和scheduler。其次,在代码里自定义scheduler和taskRegistrar(SpringTask启动的类)。最后,开个线程,模拟动态修改cron表达式的接口。
输出如下:(35min没有执行原task)
INFO 27-11 14:34:10,476 - Initializing ExecutorService
INFO 27-11 14:34:10,484 - nextExecutionTime: 0 35 14 * * ?
修改cron为: 0 36 14 * * ?
INFO 27-11 14:34:20,487 - Initializing ExecutorService
INFO 27-11 14:34:20,488 - nextExecutionTime: 0 36 14 * * ?
INFO 27-11 14:36:00,001 - dynamicCronTask is running...
INFO 27-11 14:36:00,001 - nextExecutionTime: 0 36 14 * * ?
- Spring Task 动态修改任务执行计划cron
- Spring @Scheduled定时任务动态修改cron参数
- Spring Scheduled定时任务动态修改cron参数
- Spring @Scheduled定时任务动态修改cron参数
- spring-task定时任务动态配置修改执行时间
- spring 定时任务 @Scheduled(cron = "${task.cron}") task.cron=0 0/1 * * * ?
- spring的任务计划spring-Task
- 动态改变Cron表达式,来实现动态执行Spring定时任务
- Quartz动态改变Cron表达式,来实现动态执行Spring定时任务
- Spring任务调度<task:scheduled-tasks>【含cron参数详解】
- Spring任务调度<task:scheduled-tasks>【含cron参数详解】
- Spring任务调度<task:scheduled-tasks>【含cron参数详解】
- Spring任务调度<task:scheduled-tasks>【含cron参数详解】
- Spring任务调度<task:scheduled-tasks>【含cron参数详解】
- Spring任务调度<task:scheduled-tasks>【含cron参数详解】
- Spring任务调度<task:scheduled-tasks>【含cron参数详解】
- Spring任务调度<task:scheduled-tasks>【含cron参数详解】
- Spring任务调度<task:scheduled-tasks>【含cron参数详解】
- C++命名空间 namespace的作用和使用解析
- 九九乘法表
- CNN目标检测(一):Faster RCNN详解
- Git使用手册:git clone 克隆下载远程仓库项目工程到本地工作区
- getopts使用
- Spring Task 动态修改任务执行计划cron
- JSON是什么
- Elasticsearch(搜索(1)--基本的工具)
- 每天一道算法题——二进制中1的个数
- python基础-网络协议
- ./configure时,error: cannot find install-sh, install.sh, or shtool解决方法
- Php-mysql的触发器之实例篇(V客学院知识分享)
- 情感成本与逻辑黑洞
- Python 练习实例17