springboot定时器,如何停止?

时间:2022-03-20 23:34:13
目前定时器直接使用注解    @Scheduled(cron = "0 0/10 8-11,14-18,0-2,22-23 * * ?")
方法是定时执行了,但是现在想要定时器能*开关。
该如何做?
因为springboot自己也不太熟,大部分注解完成。对于内部实现代码不太了解,望大神指点,贴上详细点的代码。
感激不尽!

5 个解决方案

#1


不懂springboot 
从功能实现的角度  在类里定义一个  static 的变量  status 
  定时执行的方法 里 第一句 就是判断这个status
 另外写一个方法 负责改变这个status  可以是通过页面按钮点击触发

#2


引用 1 楼 qq_30831935 的回复:
不懂springboot 
从功能实现的角度  在类里定义一个  static 的变量  status 
  定时执行的方法 里 第一句 就是判断这个status
 另外写一个方法 负责改变这个status  可以是通过页面按钮点击触发


这个我知道,但是定时器是纯注解实现的,没有任何方法,任何一行代码去启动和关闭它的。
直接注解在方法上面,让这个方法按照定时器规则去定时执行的。我知道给状态,那是信息如何传递,现在问题是,如何关闭这个注解的定时器,让它不执行了

#4


1楼已经说的很清楚了。
如果使用static变量,假设 private static boolean isStop=false;
在定时器的方法中首行加一行代码:if(isStop) return;
如果需要停止定时器,你写个页面,控制isStop的值就可以开关定时器了。

#5


我也遇到这个问题了 楼主解决了没 
通过配置文件设置的corn 现在要corn为空时 停掉定时任务 

#1


不懂springboot 
从功能实现的角度  在类里定义一个  static 的变量  status 
  定时执行的方法 里 第一句 就是判断这个status
 另外写一个方法 负责改变这个status  可以是通过页面按钮点击触发

#2


引用 1 楼 qq_30831935 的回复:
不懂springboot 
从功能实现的角度  在类里定义一个  static 的变量  status 
  定时执行的方法 里 第一句 就是判断这个status
 另外写一个方法 负责改变这个status  可以是通过页面按钮点击触发


这个我知道,但是定时器是纯注解实现的,没有任何方法,任何一行代码去启动和关闭它的。
直接注解在方法上面,让这个方法按照定时器规则去定时执行的。我知道给状态,那是信息如何传递,现在问题是,如何关闭这个注解的定时器,让它不执行了

#3


#4


1楼已经说的很清楚了。
如果使用static变量,假设 private static boolean isStop=false;
在定时器的方法中首行加一行代码:if(isStop) return;
如果需要停止定时器,你写个页面,控制isStop的值就可以开关定时器了。

#5


我也遇到这个问题了 楼主解决了没 
通过配置文件设置的corn 现在要corn为空时 停掉定时任务