不使用@EnableScheduling,@schedule如何生效
时间: 2023-08-10 10:19:13 浏览: 63
如果不使用@EnableScheduling注解,@Scheduled注解是不会生效的。@Scheduled注解需要一个后台任务调度器来执行定时任务,而@EnableScheduling注解就是来开启这样一个调度器的。如果没有使用@EnableScheduling注解,可以手动创建一个ScheduledExecutorService来执行定时任务。具体做法可以参考以下代码:
```
@Component
public class MyTask {
private ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
@PostConstruct
public void init() {
executorService.scheduleAtFixedRate(() -> {
//执行定时任务的代码
}, 0, 1, TimeUnit.SECONDS);
}
@PreDestroy
public void destroy() {
executorService.shutdown();
}
}
```
这个代码片段中,我们手动创建了一个ScheduledExecutorService,并在init方法中使用scheduleAtFixedRate方法来执行定时任务。在PreDestroy方法中关闭executorService,避免内存泄漏。这样就可以在不使用@EnableScheduling注解的情况下,通过@Scheduled注解来实现定时任务。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)