Spring停止或开启定时器
ApplicaitonContext的额外功能依赖于bean的后置处理器
可以利用监听器完成定时器的开关
// 引入定时器
@EnableScheduling
@SpringBootApplication
public class TestApplication {public static void main(String[] args) {SpringApplication.run(TestApplication.class);}
}
@Component(value = TaskScheduled.TASK)
public class TaskScheduled {public static final String TASK = "taskScheduled";@Autowiredprivate ApplicationContext applicationContext;private AtomicInteger num = new AtomicInteger(0);@Scheduled(cron = "*/5 * * * * ?")public void task(){System.out.println("doing task...");// 自定义条件,条件满足之后启动或者停止监听器if(num.incrementAndGet() == 3){// 发布任务applicationContext.publishEvent(new DestroyEvent(applicationContext));}}
}
Event:
public class DestroyEvent extends ApplicationEvent {public DestroyEvent(Object object){super(object);}
}
Listener:
@Component
public class DestroyListener implements ApplicationListener<DestroyEvent> {@Overridepublic void onApplicationEvent(DestroyEvent destroyEvent) {Object object = destroyEvent.getSource();if(object instanceof ApplicationContext){//AbstractApplicationContext 实现了 ApplicationContextAbstractApplicationContext ap = (AbstractApplicationContext)object;//DefaultListableBeanFactory 实现了 ConfigurableListableBeanFactoryDefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory)ap.getBeanFactory();// 如果工厂中有当前bean就销毁掉if(beanFactory.containsBean(TaskScheduled.TASK)){beanFactory.destroySingleton(TaskScheduled.TASK);}// 可以自定义再创建定时器// beanFactory.createBean(TaskScheduled.class);}}
}
Spring停止或开启定时器相关推荐
- spring中配置quartz定时器
spring中配置quartz定时器 最近项目中用到定时器,项目用的spring所以想在spring中配置一下定时器,看到网上用quartz的比较多,所以就搜了一下.参考:http://blog.cs ...
- QT之QTimer详解以及结合多线程中开启定时器的示例
一 QTimer详解 QTimer类提供了重复和单次触发信号的定时器. a.void timeout ()定时器超时后,这个信号被发射. b.void start()开启定时器,它的重载函数void ...
- [转]解决STM32开启定时器时立即进入一次中断程序问题
[转]解决STM32开启定时器时立即进入一次中断程序问题 参考文章: (1)[转]解决STM32开启定时器时立即进入一次中断程序问题 (2)https://www.cnblogs.com/tubuji ...
- mysql开启定时器_MySQL定时器开启、调用实现代码
创建测试表 复制代码 代码如下: CREATE TABLE t ( v VARCHAR(100) NOT NULL ) ENGINE INNODB DEFAULT CHARSET=utf8; 创建定时 ...
- 在Spring中使用JDK定时器实现调度任务
在Spring中使用JDK定时器实现调度任务 作者:chszs,转载需注明.博客主页: http://blog.csdn.net/chszs 本文探讨Spring如何集成JDK的Timer定时器,实现 ...
- STM32开启定时器就立即进Update中断问题探索
问题描述:意外发现定时器再刚使能后立即就进了中断,且是Update中断,比较奇怪,难道Update中断不是定时器计数溢出后才触发吗?因此写下此文章记录相关情况. 测试平台: STM32F103VET6 ...
- spring 自带的定时器task
一.在spring的配置文件中加入task配置: <?xml version="1.0" encoding="UTF-8"?> <beans ...
- vue项目:开启定时器后,1分钟内每5秒调一次接口,请求到数据后,清除定时器
data() {return {codeTimer: null,//定时器codeTime: 12, // 限制1分钟后没请求到erp数据,不再继续请求};}, //开启定时器 通过codeTime的 ...
- Spring注解方式实现定时器
一.springmvc.xml中添加以下配置 1.beans添加xmlnx:task xmlns:task="http://www.springframework.org/schema/ta ...
最新文章
- 【教程】EditPlus+MinGW搭建简易的C/C++开发环境
- JPA的entityManager的find方法与getReference方法的区别
- Spring Boot动态修改日志级别
- qt弹出框自动消失的悬浮提示框_QT【简单自定义弹出提示框】:非模态,数秒后自动消失...
- 海龟交易法则14_掌控心魔
- 苹果:两个 M1 Max 拼一块儿,“史上最强 PC 芯片”M1 Ultra 就出来了!
- IDEA导入Git项目后右键项目找不到Git选项的解决方法
- 如果计算机正执行屏幕保护程序 当用户,计算机一级考试参考试题(含答案)篇节一.doc...
- 程序员写文档工具推荐,让你爱上写文档!
- MATLAB 函数画图
- Python中如何求分数化简
- qq 能上但是打不开网页
- 解决Mybatis报错并分析原因:Invalid bound statement (not found): com.xxx.mapper.xxx
- 字符串库函数(1)Strlen,strcpy,strcat,strcmp
- 使用aspose-slides将ppt转pdf
- 终极实践:部署LNMP服务
- 3D全景图,全景视频,陀螺仪
- python的三维坐标轴设置_如何更改matplotlib中的三维轴设置
- android 文件过滤驱动,自己写的Xuetr工具驱动读写过滤驱动,并奉献上源码
- 景德镇昌江一中2021年高考成绩查询,刚公布!2020年景德镇市重点高中统招分数线出来了!...
热门文章
- 永远不要放弃追逐你的梦想...
- 轻项目练习——图书管理代码
- Module not found: Error: Can‘t resolve ‘./@/assets/image/folder.png‘
- 最小二乘相位解包裹算法
- 【*加快Win7系统运行速度的12个小技巧*】
- Java反编译插件JODE介绍
- fatal: Not a git repository
- matlab空间曲线展开,MATLAB曲线绘制的一些技巧和注解
- matlab 正弦波发生器,sinwav_simulink matlba的 正弦波发生器,非常简单但很实用的模型 ab 254万源代码下载- www.pudn.com...
- OFDM通信系统的仿真