(其实不单单事务有编程式和声明式,定时任务也有哦…)

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 编程式定时任务相关推荐

  1. spring编程式和声明式事务控制

    可优先参考:@Transactional Spring 事务的深入学习与使用[两万字] 1. 编程式事务控制 @Autowired private RoleMapper roleMapper;@Aut ...

  2. Spring4.0编程式定时任务配置

    看过很多定时调度的配置,大多使用XML配置,觉得比较麻烦,也比较老套.这里介绍一种基于spring4.0注解编程式配置定时任务,简单清晰,使用方便.. 至于引入spring相关jar这里不多说,直接切 ...

  3. Spring编程式和声明式事务实例讲解

    历史回顾: 可能是最漂亮的Spring事务管理详解 Spring事务管理 Spring支持两种方式的事务管理: 编程式事务管理: 通过Transaction Template手动管理事务,实际应用中很 ...

  4. spring编程式事务

    事务是spring框架中一个核心的模块,事务的ACID特性想必对于学习java的同学来说都不陌生,对于spring,实现事务的底层原理其实很简单,就是通过AOP代理进行实现,而实现spring的AOP ...

  5. Spring 编程式事务实例

    1.通过PlatformTransactionManager控制事务 package com.tx;import org.springframework.jdbc.core.JdbcTemplate; ...

  6. spring编程式事务控制

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  7. spring中编程式事务与声明式事务

    spring中使用事务有两种方式,一种是编程式,一种是声明式. 编程式事务 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManage ...

  8. 【spring】编程式事务控制

    结构: AccountServiceImpl package com.itheima.service.impl;import com.itheima.dao.IAccountDao; import c ...

  9. 全面分析 Spring 的编程式事务管理及声明式事务管理(转)

    摘要 Spring 的事务管理是 Spring 框架中一个比较重要的知识点,该知识点本身并不复杂,只是由于其比较灵活,导致初学者很难把握.本教程从基础知识开始,详细分析了 Spring 事务管理的使用 ...

最新文章

  1. 积木赛尔号机器人_赛尔号11年,圣灵谱尼从章鱼变花臂少年,最终成为了老父亲...
  2. 开关电源反馈环路设计matlab,开关电源控制环路设计(初级篇).pdf
  3. php 删除硬链接,为什么要用软链接硬链接
  4. css中px、em和rem的区别总结
  5. 响应式API的设计、实现和应用
  6. java流错误的是什么_Java 流异常的标准处理 | 学步园
  7. 算法概论第八章课后习题8.3
  8. pivot unpivot_静态和动态SQL Pivot和Unpivot关系运算符概述
  9. DOM技术对xml增删改查后更新源文件异常报错
  10. 【其他】Windows Media Services 无法启动
  11. 2000份简历模板 唯美时尚简约个人简历模板 英文简历模板 简历封面 自荐信下载
  12. android studio模拟器闪一下,android studio连接雷电模拟器 【AS 模拟器】
  13. type-C 边充电边听歌(OTG) PD芯片方案,LDR6028 PD充电加OTG方案
  14. 笔记本电脑处理器(CPU)性能排行榜
  15. 5v继电器模块实物接线_继电器实物接线图
  16. UI面试常见问题总结
  17. 小老鼠冒险记:《Moss 2》幕后花絮
  18. android系统佳明app,佳明garmin运动手表app
  19. 大学生职业生涯规划书性格特征_大学生职业生涯规划书自我分析
  20. gRPC详细入门教程,Golang/Python/PHP多语言讲解

热门文章

  1. 水池蓄水问题(Trapping Rain Water)
  2. Vue中使用find函数
  3. 计算机编程语言的应用
  4. Python代码搜索并下载酷狗音乐
  5. 我的剑留给能挥舞它的人——纪念逝去的2015
  6. 电脑用户须知 忘记分级审查密码怎么办(转)
  7. 吴恩达深度学习 4.1 卷积神经网络-卷积神经网络基础
  8. GPM数据批量下载教程
  9. 实战:开发Python项目管理平台Sailboat
  10. 界面劫持与反界面劫持