From 913c1b678917aee00f7fa73203bbdb4f4755f90c Mon Sep 17 00:00:00 2001 From: Donghuang Date: Thu, 7 Oct 2021 23:41:42 +0800 Subject: [PATCH] add delete expired cdr --- .../yo/mapper/CallDetailRecordMapper.java | 7 +++++++ .../yo/mapper/CallDetailRecordMapper.xml | 8 ++++++++ .../yo/mapper/CallDetailRecordMapperTest.java | 5 +++++ .../service/impl/CallingListServiceImpl.java | 18 ++++++++++++++++-- 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallDetailRecordMapper.java b/lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallDetailRecordMapper.java index 6c39e11f..d2899f0d 100644 --- a/lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallDetailRecordMapper.java +++ b/lib/mapper/src/main/java/com/pudonghot/yo/mapper/CallDetailRecordMapper.java @@ -30,4 +30,11 @@ public interface CallDetailRecordMapper extends BaseMapper + + delete from + + where + + diff --git a/lib/mapper/src/test/java/com/pudonghot/yo/mapper/CallDetailRecordMapperTest.java b/lib/mapper/src/test/java/com/pudonghot/yo/mapper/CallDetailRecordMapperTest.java index 8445aa66..e8f899d1 100644 --- a/lib/mapper/src/test/java/com/pudonghot/yo/mapper/CallDetailRecordMapperTest.java +++ b/lib/mapper/src/test/java/com/pudonghot/yo/mapper/CallDetailRecordMapperTest.java @@ -91,4 +91,9 @@ public class CallDetailRecordMapperTest { } // mapper.list(new Search().desc(CallDetailRecord.ID).limit(20)); } + + @Test + public void testDeleteExpired() { + mapper.deleteExpired(); + } } diff --git a/server/src/main/java/com/pudonghot/yo/campaign/service/impl/CallingListServiceImpl.java b/server/src/main/java/com/pudonghot/yo/campaign/service/impl/CallingListServiceImpl.java index 48567b5a..fe6a0af5 100644 --- a/server/src/main/java/com/pudonghot/yo/campaign/service/impl/CallingListServiceImpl.java +++ b/server/src/main/java/com/pudonghot/yo/campaign/service/impl/CallingListServiceImpl.java @@ -14,6 +14,7 @@ import com.pudonghot.yo.mapper.PhoneAliasMapper; import com.pudonghot.yo.mapper.CallingListMapper; import com.pudonghot.yo.model.domain.CallingList; import com.pudonghot.yo.service.LeaderElectionService; +import com.pudonghot.yo.mapper.CallDetailRecordMapper; import org.springframework.beans.factory.annotation.Value; import com.pudonghot.yo.mapper.CallingListHistoricalMapper; import org.springframework.scheduling.annotation.Scheduled; @@ -39,6 +40,8 @@ public class CallingListServiceImpl private LeaderElectionService leaderElectionService; @Autowired private PhoneAliasMapper phoneAliasMapper; + @Autowired + private CallDetailRecordMapper callDetailRecordMapper; @Value("${yo.campaign.calling-list-lock-expire.seconds:300}") private int expireLockDuration; @@ -70,11 +73,22 @@ public class CallingListServiceImpl phoneAliasMapper.deleteOutdated(); } + @Scheduled(cron = "${yo.call-detail-record.delete-expired-cron:1 1 0 * * *}") + public void deleteExpiredCDR() { + if (!leaderElectionService.isLeader()) { + log.info("Server is not leader, ignore delete expired CDR scheduler task."); + return; + } + + log.info("Delete expired CDR."); + callDetailRecordMapper.deleteExpired(); + } + @Scheduled(cron = "${yo.campaign.calling-list.batch-cron:1 1 1 * * *}") - public void deleteCalled() { + public void callingListBatch() { if (!leaderElectionService.isLeader()) { - log.debug("Server is not leader, ignore campaign delete calling list scheduler task."); + log.debug("Server is not leader, ignore campaign calling list scheduler task."); return; }