加上定时器,初始延迟10秒后每10分钟执行一次
时间: 2024-11-15 12:20:52 浏览: 20
在Java中,我们可以使用`ScheduledExecutorService`来实现任务按照特定的时间间隔重复执行,包括设置初始延迟和周期性调度。这里有一个简单的示例,使用`TimerTask`来封装你需要执行的代码:
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class TimerExample {
private static ScheduledExecutorService executor;
public static void main(String[] args) {
// 初始化线程池,用于执行定时任务
executor = Executors.newSingleThreadScheduledExecutor();
// 创建一个计时任务,初始延迟10秒,然后每隔10分钟执行一次
MyTask task = new MyTask();
executor.schedule(task, 10, TimeUnit.SECONDS); // 首次执行
executor.scheduleAtFixedRate(task, 10, 60 * 10, TimeUnit.MINUTES); // 每隔10分钟执行
// 关闭线程池之前记得取消所有任务,防止资源泄漏
// 在程序结束前,加入这行可以确保关闭
Runtime.getRuntime().addShutdownHook(new Thread(() -> executor.shutdownNow()));
}
// 定时任务类
static class MyTask extends TimerTask {
@Override
public void run() {
// 这里填写你的业务逻辑
System.out.println("Task executed at current time.");
}
}
}
```
在这个例子中,`MyTask`将会在主线程之外的一个单独线程中执行,初始延迟10秒后开始,之后每10分钟执行一次。
阅读全文