java定时任务怎么写
时间: 2023-10-13 14:22:34 浏览: 97
Java定时任务可以使用Java自带的java.util.Timer类或者使用第三方库如Quartz来实现。
1. 使用java.util.Timer类:
Timer类可以在指定的时间后执行任务,也可以按照一定的时间周期执行任务。
示例代码:
```java
import java.util.Timer;
import java.util.TimerTask;
public class MyTask extends TimerTask {
public void run() {
// 执行任务的代码
}
}
public class Main {
public static void main(String[] args) {
Timer timer = new Timer();
// 在3秒后执行任务
timer.schedule(new MyTask(), 3000);
// 每隔10秒执行一次任务
timer.schedule(new MyTask(), 0, 10000);
}
}
```
2. 使用Quartz:
Quartz是一个开源的作业调度框架,可以用于定时执行任务、定时刷新缓存等。
示例代码:
```java
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
import static org.quartz.JobBuilder.*;
import static org.quartz.TriggerBuilder.*;
import static org.quartz.SimpleScheduleBuilder.*;
public class MyJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
// 执行任务的代码
}
}
public class Main {
public static void main(String[] args) throws SchedulerException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
JobDetail job = newJob(MyJob.class)
.withIdentity("myJob", "group1")
.build();
Trigger trigger = newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(10)
.repeatForever())
.build();
scheduler.scheduleJob(job, trigger);
scheduler.start();
}
}
```
以上是两种常见的Java定时任务实现方式,具体使用哪种方式取决于具体的业务需求和技术实现。
阅读全文