Linux 拨号vps windows公众号手机端

spring定时器如何停止

lewis 7年前 (2018-05-14) 阅读数 5 #程序编程
文章标签 spring

Spring定时器有两种停止的方式:

  1. 使用@Scheduled注解的方法停止:可以在方法上添加一个参数,类型为ScheduledFuture,然后在需要停止定时器的地方调用ScheduledFuture.cancel()方法即可停止定时器。
@Scheduled(fixedRate = 1000)
public void someTask(ScheduledFuture<?> scheduledFuture) {
// 业务逻辑
if (需要停止定时器的条件) {
scheduledFuture.cancel();
}
}
  1. 使用TaskScheduler的接口方法停止:通过注入TaskScheduler实例,调用TaskScheduler.schedule()方法返回的ScheduledFuture对象的cancel()方法即可停止定时器。
@Autowired
private TaskScheduler taskScheduler;
public void startTask() {
ScheduledFuture<?> scheduledFuture = taskScheduler.schedule(new Runnable() {
@Override
public void run() {
// 业务逻辑
}
}, new CronTrigger("*/5 * * * * *")); // 定时表达式
// 业务逻辑
if (需要停止定时器的条件) {
scheduledFuture.cancel();
}
}

需要注意的是,停止定时器时需要保留定时任务的ScheduledFuture对象,以便在需要停止定时器的地方调用cancel()方法。

版权声明

本文仅代表作者观点,不代表米安网络立场。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门