写一个使用@Scheduled注解的demo
时间: 2023-10-14 22:11:46 浏览: 79
好的,这是一个使用@Scheduled注解的demo:
```java
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledDemo {
@Scheduled(fixedRate = 1000) //每隔1秒执行一次
public void print() {
System.out.println("Hello, World!");
}
}
```
这段代码会每隔1秒输出一次"Hello, World!"。
相关问题
springboot 使用@Scheduled 做定时任务 demo
好的,下面是一个使用 `@Scheduled` 注解实现定时任务的 Spring Boot 示例代码:
首先,在 Spring Boot 项目的 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
```
然后,在一个 Spring Boot 的 Java 类中添加以下代码:
```java
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledTasks {
@Scheduled(fixedRate = 5000) // 每隔 5 秒执行一次
public void task1() {
System.out.println("Task1: " + System.currentTimeMillis());
}
@Scheduled(cron = "0 0/1 * * * ?") // 每分钟执行一次
public void task2() {
System.out.println("Task2: " + System.currentTimeMillis());
}
}
```
上面代码中,我们使用 `@Scheduled` 注解来实现两个定时任务,一个是每隔 5 秒执行一次,另一个是每分钟执行一次。
其中,`@Scheduled` 注解有两个常用的属性:
- `fixedRate`:表示任务执行的间隔时间,单位为毫秒。
- `cron`:表示基于 Cron 表达式的定时任务配置,格式为 `second minute hour dayOfMonth month dayOfWeek year`。
最后,启动 Spring Boot 应用程序,即可看到定时任务在后台自动执行的输出结果。
注意:在 Spring Boot 应用程序中使用 `@Scheduled` 注解时,需要在应用程序主类上添加 `@EnableScheduling` 注解,以启用定时任务功能。
springboot scheduled线程池 demo
以下是一个使用 Spring Boot Scheduled 的线程池示例:
1. 首先,您需要在 Maven 或 Gradle 中添加以下依赖项:
```xml
<!-- Spring Boot Starter Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.4.5</version>
</dependency>
<!-- Spring Boot Starter Scheduled -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
<version>2.4.5</version>
</dependency>
```
2. 创建一个 `ThreadPoolConfig` 类,用于设置线程池配置:
```java
@Configuration
public class ThreadPoolConfig {
@Bean
public ExecutorService taskExecutor() {
return Executors.newScheduledThreadPool(10);
}
}
```
3. 创建一个 `ScheduledTask` 类,用于编写定时任务逻辑:
```java
@Component
public class ScheduledTask {
@Autowired
private ExecutorService executorService;
@Scheduled(fixedDelay = 1000)
public void task() {
executorService.submit(() -> {
// 任务逻辑
});
}
}
```
4. 运行应用程序并查看日志,您将看到定时任务正在运行。
注意:在使用 Scheduled 注解时,需要确保该注解所在的类被 Spring 容器扫描到。如果您使用了 Spring Boot Starter Web,则可以通过在主类上添加 `@SpringBootApplication` 注解来实现自动扫描。
阅读全文