java定时任务每天凌晨三点每隔30天,迁移数据后,删除数据
时间: 2024-05-08 22:16:04 浏览: 177
java定时任务,每天定时执行任务
以下是Java实现定时任务每天凌晨三点每隔30天迁移数据并删除数据的示例代码:
```
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class DataMigrationTask extends TimerTask {
// 定义数据迁移周期,此处为30天
private static final int MIGRATION_PERIOD = 30;
public void run() {
// 获取当前日期
Date currentDate = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(currentDate);
// 判断是否为每隔30天的凌晨三点
if (calendar.get(Calendar.HOUR_OF_DAY) == 3 && calendar.get(Calendar.MINUTE) == 0 && calendar.get(Calendar.SECOND) == 0 && calendar.get(Calendar.DAY_OF_MONTH) % MIGRATION_PERIOD == 0) {
// 迁移数据
migrateData();
// 删除数据
deleteData();
}
}
private void migrateData() {
// 数据迁移逻辑
}
private void deleteData() {
// 数据删除逻辑
}
public static void main(String[] args) {
// 创建定时任务
Timer timer = new Timer();
// 每天凌晨三点开始执行定时任务
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 3);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date startTime = calendar.getTime();
timer.scheduleAtFixedRate(new DataMigrationTask(), startTime, MIGRATION_PERIOD * 24 * 60 * 60 * 1000L);
}
}
```
在main方法中创建定时任务,使用Timer.scheduleAtFixedRate()方法设置定时任务的开始时间和周期时间。在run()方法中判断是否为每隔30天的凌晨三点,如果是则执行数据迁移和删除逻辑。
阅读全文