|
|
@ -13,12 +13,15 @@ import com.elink.esua.epdc.utils.ScheduleUtils; |
|
|
|
import com.elink.esua.epdc.dao.ScheduleJobDao; |
|
|
|
import com.elink.esua.epdc.entity.ScheduleJobEntity; |
|
|
|
import com.elink.esua.epdc.utils.ScheduleUtils; |
|
|
|
import org.quartz.CronExpression; |
|
|
|
import org.quartz.CronTrigger; |
|
|
|
import org.quartz.Scheduler; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.boot.CommandLineRunner; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
import java.text.ParseException; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
/** |
|
|
@ -34,9 +37,17 @@ public class JobCommandLineRunner implements CommandLineRunner { |
|
|
|
private ScheduleJobDao scheduleJobDao; |
|
|
|
|
|
|
|
@Override |
|
|
|
public void run(String... args) { |
|
|
|
public void run(String... args) throws ParseException { |
|
|
|
List<ScheduleJobEntity> scheduleJobList = scheduleJobDao.selectList(null); |
|
|
|
for(ScheduleJobEntity scheduleJob : scheduleJobList){ |
|
|
|
Date date; |
|
|
|
CronExpression exp = new CronExpression(scheduleJob.getCronExpression()); |
|
|
|
date = exp.getNextValidTimeAfter(new Date()); |
|
|
|
if (date == null) { |
|
|
|
scheduleJobDao.deleteJobById(scheduleJob.getId().toString()); |
|
|
|
System.out.println("delete"); |
|
|
|
continue; |
|
|
|
} |
|
|
|
CronTrigger cronTrigger = ScheduleUtils.getCronTrigger(scheduler, scheduleJob.getId()); |
|
|
|
//如果不存在,则创建
|
|
|
|
if(cronTrigger == null) { |
|
|
|