java添加定时任务怎么写
时间: 2023-11-11 09:07:31 浏览: 71
Java添加定时任务可以使用Java自带的Timer和TimerTask类,也可以使用第三方库,如Quartz。
使用Java自带的Timer和TimerTask类:
1. 创建一个继承自TimerTask的类,重写run方法,编写定时任务的逻辑。
```java
public class MyTask extends TimerTask {
@Override
public void run() {
// 定时任务逻辑
}
}
```
2. 创建一个Timer对象,调用schedule方法,指定MyTask类和执行时间。
```java
public class Main {
public static void main(String[] args) {
Timer timer = new Timer();
MyTask task = new MyTask();
// 每隔1秒执行一次
timer.schedule(task, 0, 1000);
}
}
```
使用Quartz:
1. 引入Quartz的依赖库。
```xml
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>
```
2. 创建一个Job类,实现Job接口,重写execute方法,编写定时任务的逻辑。
```java
public class MyJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// 定时任务逻辑
}
}
```
3. 创建一个Scheduler对象,创建一个JobDetail对象,指定Job类,创建一个Trigger对象,指定执行时间和重复间隔,将JobDetail和Trigger传入Scheduler的scheduleJob方法中。
```java
public class Main {
public static void main(String[] args) throws SchedulerException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
JobDetail job = JobBuilder.newJob(MyJob.class).build();
Trigger trigger = TriggerBuilder.newTrigger()
.startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(1)
.repeatForever())
.build();
scheduler.scheduleJob(job, trigger);
scheduler.start();
}
}
```
阅读全文