可以在@Scheduled定时任务中用ScheduledExecutorService开启其他任务吗
时间: 2023-12-15 22:33:03 浏览: 88
可以在@Scheduled定时任务中使用ScheduledExecutorService开启其他任务。可以通过在@Scheduled注解的方法中创建ScheduledExecutorService实例,并使用它来执行其他任务。下面是一个示例代码:
```java
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@Component
public class MyScheduledTask {
@Scheduled(fixedRate = 1000)
public void scheduledTask() {
System.out.println("Scheduled task is running.");
ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.schedule(() -> {
System.out.println("Other task is running.");
}, 5, TimeUnit.SECONDS);
}
}
```
在上面的代码中,我们在@Scheduled注解的方法中创建了一个ScheduledExecutorService实例,并使用它来执行一个延迟5秒后执行的任务。这个任务会在@Scheduled注解的方法每次执行时都会被创建并执行。
阅读全文