java定时任务怎么写
时间: 2023-11-11 12:13:25 浏览: 75
java 定时任务写法
5星 · 资源好评率100%
Java定时任务可以通过Java自带的Timer和TimerTask类来实现,也可以使用第三方库如Quartz等。
以下是使用Timer和TimerTask实现定时任务的示例代码:
```java
import java.util.Timer;
import java.util.TimerTask;
public class MyTask extends TimerTask {
public void run() {
// 定时任务代码
System.out.println("定时任务执行!");
}
public static void main(String[] args) {
Timer timer = new Timer();
// 延迟1秒后每2秒执行一次定时任务
timer.schedule(new MyTask(), 1000, 2000);
}
}
```
上述代码中,MyTask类继承了TimerTask类,并重写了其中的run方法,该方法中编写实际的定时任务代码。在main方法中创建Timer对象,调用其schedule方法来启动定时任务,其中第一个参数为要执行的定时任务对象,第二个参数为延迟执行的时间,第三个参数为定时任务执行的间隔时间。
使用Quartz实现定时任务的代码可以参考以下示例:
```java
import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
public class MyJob implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException {
// 定时任务代码
System.out.println("定时任务执行!");
}
public static void main(String[] args) throws SchedulerException {
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
JobDetail jobDetail = JobBuilder.newJob(MyJob.class)
.withIdentity("myJob", "group1")
.build();
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger", "group1")
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2)
.repeatForever())
.build();
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
}
}
```
上述代码中,MyJob类实现了Quartz的Job接口,并重写了其中的execute方法,该方法中编写实际的定时任务代码。在main方法中创建Scheduler对象,创建JobDetail和Trigger对象,并将它们关联起来,最后通过调用Scheduler的scheduleJob方法来启动定时任务。
阅读全文