Spring 编程式定时任务
(其实不单单事务有编程式和声明式,定时任务也有哦…)
Spring 声明式定时任务大家都用的很频繁并且很熟练了吧,通过@EnableScheduling
和@Schedule(cron)
注解即可实现。
虽然声明式定时任务配合上强大的cron表达式已经可以满足我们的大多数需求了,但是如果说在程序运行期间我们需要更改定时任务的执行频率,通过编程式@Schedule
注解是不容易去实现的。
为此Spring为我们提供了一个接口SchedulingConfigurer
可以让定时任务在运行时更改执行频率,我们只需要一个实现了该接口的类,通过重写configureTasks(ScheduledTaskRegistrar taskRegistrar)
方法来实现定时任务运行频率的修改:
@EnableScheduling
public class MySchedule implements SchedulingConfigurer {private static String expression = "0 0/10 * * * ?";public static void setExpression(String expression) {MySchedule.expression = expression;}@Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegistrar) {taskRegistrar.addTriggerTask(new Runnable() {@Overridepublic void run() {// 具体的定时任务}},new Trigger() {@Overridepublic Date nextExecutionTime(TriggerContext triggerContext) {return new CronTrigger(expression).nextExecutionTime(triggerContext);}});}
}
如此便可以修改定时任务的执行频率,只需将该类的静态变量expression重新赋值即可:
MySchedule.setExpression("0 0/20 * * * ?" /* 新的cron表达式 */);
Spring 编程式定时任务相关推荐
- spring编程式和声明式事务控制
可优先参考:@Transactional Spring 事务的深入学习与使用[两万字] 1. 编程式事务控制 @Autowired private RoleMapper roleMapper;@Aut ...
- Spring4.0编程式定时任务配置
看过很多定时调度的配置,大多使用XML配置,觉得比较麻烦,也比较老套.这里介绍一种基于spring4.0注解编程式配置定时任务,简单清晰,使用方便.. 至于引入spring相关jar这里不多说,直接切 ...
- Spring编程式和声明式事务实例讲解
历史回顾: 可能是最漂亮的Spring事务管理详解 Spring事务管理 Spring支持两种方式的事务管理: 编程式事务管理: 通过Transaction Template手动管理事务,实际应用中很 ...
- spring编程式事务
事务是spring框架中一个核心的模块,事务的ACID特性想必对于学习java的同学来说都不陌生,对于spring,实现事务的底层原理其实很简单,就是通过AOP代理进行实现,而实现spring的AOP ...
- Spring 编程式事务实例
1.通过PlatformTransactionManager控制事务 package com.tx;import org.springframework.jdbc.core.JdbcTemplate; ...
- spring编程式事务控制
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...
- spring中编程式事务与声明式事务
spring中使用事务有两种方式,一种是编程式,一种是声明式. 编程式事务 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManage ...
- 【spring】编程式事务控制
结构: AccountServiceImpl package com.itheima.service.impl;import com.itheima.dao.IAccountDao; import c ...
- 全面分析 Spring 的编程式事务管理及声明式事务管理(转)
摘要 Spring 的事务管理是 Spring 框架中一个比较重要的知识点,该知识点本身并不复杂,只是由于其比较灵活,导致初学者很难把握.本教程从基础知识开始,详细分析了 Spring 事务管理的使用 ...
最新文章
- 积木赛尔号机器人_赛尔号11年,圣灵谱尼从章鱼变花臂少年,最终成为了老父亲...
- 开关电源反馈环路设计matlab,开关电源控制环路设计(初级篇).pdf
- php 删除硬链接,为什么要用软链接硬链接
- css中px、em和rem的区别总结
- 响应式API的设计、实现和应用
- java流错误的是什么_Java 流异常的标准处理 | 学步园
- 算法概论第八章课后习题8.3
- pivot unpivot_静态和动态SQL Pivot和Unpivot关系运算符概述
- DOM技术对xml增删改查后更新源文件异常报错
- 【其他】Windows Media Services 无法启动
- 2000份简历模板 唯美时尚简约个人简历模板 英文简历模板 简历封面 自荐信下载
- android studio模拟器闪一下,android studio连接雷电模拟器 【AS 模拟器】
- type-C 边充电边听歌(OTG) PD芯片方案,LDR6028 PD充电加OTG方案
- 笔记本电脑处理器(CPU)性能排行榜
- 5v继电器模块实物接线_继电器实物接线图
- UI面试常见问题总结
- 小老鼠冒险记:《Moss 2》幕后花絮
- android系统佳明app,佳明garmin运动手表app
- 大学生职业生涯规划书性格特征_大学生职业生涯规划书自我分析
- gRPC详细入门教程,Golang/Python/PHP多语言讲解