java 实现定时任务
时间: 2023-09-14 21:11:47 浏览: 80
Java中实现定时任务通常使用Java自带的ScheduledExecutorService或者使用Quartz框架。
1. 使用ScheduledExecutorService:
示例代码:
```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class ScheduledTask {
public static void main(String[] args) {
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(1);
// 延时1秒后,每隔2秒执行一次
executorService.scheduleAtFixedRate(() -> {
System.out.println("定时任务执行...");
}, 1, 2, TimeUnit.SECONDS);
}
}
```
2. 使用Quartz框架:
Quartz是一个开源的任务调度框架,可以通过XML或者Java代码的方式配置定时任务。示例代码:
```java
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import java.util.Date;
public class QuartzTest {
public static void main(String[] args) throws SchedulerException {
// 创建一个调度器
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// 创建一个任务
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").build();
// 创建一个触发器
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
.startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2).repeatForever()).build();
// 将任务和触发器放入调度器中
scheduler.scheduleJob(job, trigger);
// 启动调度器
scheduler.start();
}
}
class MyJob implements Job {
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("定时任务执行..." + new Date());
}
}
```
以上是两种实现Java定时任务的方法,你可以根据自己的需要选择一种适合的方式来实现。
阅读全文