關鍵的點是如何隨系統自動開啓,這裏只需要繼承一個CommandLineRunner的接口就可以完美解決了
@Component
public class DelCommandLineRunner implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
DelTask.del();
}
}
public class DelTask {
private static final String cron="0 0 1 * * ?";
public static void del() throws SchedulerException{
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler scheduler = sf.getScheduler();
JobDetail jobDetail= JobBuilder.newJob(RadarPicJob.class).withIdentity("picJob", "picGroup").build();
Trigger trigger =TriggerBuilder.newTrigger()
.withIdentity("picTrigger", "picTriggerGroup")// 觸發器名,觸發器組
.startNow()
.withSchedule(CronScheduleBuilder.cronSchedule(cron))// 觸發器時間設定
.build();
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
System.out.println("啓動時間: " + new Date());
}
}
實現類:
public class PicJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("任務開始執行!");
}
}