Browse Source

【定时服务】-过去日期任务删除优化-lipf-20200716

feature/dangjian
李鹏飞 5 years ago
parent
commit
3babb537b7
  1. 4
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/pom.xml
  2. 4
      esua-epdc/epdc-module/epdc-job/epdc-job-server/pom.xml
  3. 4
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/dao/ScheduleJobDao.java
  4. 13
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/init/JobCommandLineRunner.java
  5. 15
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobServiceImpl.java
  6. 3
      esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/resources/mapper/ScheduleJobDao.xml
  7. 4
      esua-epdc/epdc-module/epdc-message/epdc-message-server/pom.xml

4
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/pom.xml

@ -208,8 +208,8 @@
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.ip>47.104.85.99</nacos.ip>
<nacos.namespace>6a3577b4-7b79-43f6-aebb-9c3f31263f6a</nacos.namespace>
<nacos.ip>219.146.91.110</nacos.ip>
<nacos.namespace>a746dde3-7a13-4521-b986-7369b0b7c269</nacos.namespace>
<spring.zipkin.base-url>http://localhost:9411</spring.zipkin.base-url>

4
esua-epdc/epdc-module/epdc-job/epdc-job-server/pom.xml

@ -186,8 +186,8 @@
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.ip>47.104.85.99</nacos.ip>
<nacos.namespace>6a3577b4-7b79-43f6-aebb-9c3f31263f6a</nacos.namespace>
<nacos.ip>219.146.91.110</nacos.ip>
<nacos.namespace>a746dde3-7a13-4521-b986-7369b0b7c269</nacos.namespace>
</properties>
</profile>

4
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/dao/ScheduleJobDao.java

@ -32,4 +32,8 @@ public interface ScheduleJobDao extends BaseDao<ScheduleJobEntity> {
* 根据params删除某一个定时任务
*/
void deleteJobByParams(@Param("params")String params);
/**
* 根据params删除某一个定时任务
*/
void deleteJobById(@Param("id")String id);
}

13
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/init/JobCommandLineRunner.java

@ -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) {

15
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/java/com/elink/esua/epdc/service/impl/ScheduleJobServiceImpl.java

@ -132,20 +132,7 @@ public class ScheduleJobServiceImpl extends BaseServiceImpl<ScheduleJobDao, Sche
@Override
public void deleteJobByParams(String params) {
QueryWrapper<ScheduleJobEntity> wrapper = new QueryWrapper<>();
wrapper.eq("params", params);
List<ScheduleJobEntity> scheduleJobEntities = baseDao.selectList(wrapper);
if (CollUtil.isNotEmpty(scheduleJobEntities)) {
Long[] jobIds = scheduleJobEntities.stream()
.map(ScheduleJobEntity::getId)
.distinct()
.toArray(Long[]::new);
this.deleteBatch(jobIds);
}
baseDao.deleteJobByParams(params);
}
}

3
esua-epdc/epdc-module/epdc-job/epdc-job-server/src/main/resources/mapper/ScheduleJobDao.xml

@ -14,5 +14,8 @@
<delete id="deleteJobByParams" parameterType="String">
delete from schedule_job where params = #{params}
</delete>
<delete id="deleteJobById" parameterType="String">
delete from schedule_job where id = #{id}
</delete>
</mapper>

4
esua-epdc/epdc-module/epdc-message/epdc-message-server/pom.xml

@ -186,8 +186,8 @@
<nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.ip>47.104.85.99</nacos.ip>
<nacos.namespace>6a3577b4-7b79-43f6-aebb-9c3f31263f6a</nacos.namespace>
<nacos.ip>219.146.91.110</nacos.ip>
<nacos.namespace>a746dde3-7a13-4521-b986-7369b0b7c269</nacos.namespace>
</properties>
</profile>

Loading…
Cancel
Save