关键的点是如何随系统自动开启,这里只需要继承一个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("任务开始执行!");
}
}