Просмотр исходного кода

content_platform_demand_video 滚动删除,保留最近14天内容

wangyunpeng 5 часов назад
Родитель
Сommit
244357a421

+ 2 - 0
api-module/src/main/java/com/tzld/piaoquan/api/dao/mapper/contentplatform/ext/ContentPlatformDemandVideoMapperExt.java

@@ -11,6 +11,8 @@ public interface ContentPlatformDemandVideoMapperExt {
 
     int deleteByDt(@Param("dt") String dt);
 
+    int deleteByDtLessThan(@Param("dt") String dt);
+
     int deleteByDtAndChannelName(@Param("dt") String dt, @Param("channelName") String channelName);
 
     List<ContentPlatformDemandVideo> selectByCondition(@Param("dt") String dt,

+ 23 - 0
api-module/src/main/java/com/tzld/piaoquan/api/job/contentplatform/ContentPlatformDemandVideoJob.java

@@ -365,6 +365,29 @@ public class ContentPlatformDemandVideoJob {
         return result;
     }
 
+    /**
+     * 滚动清理 content_platform_demand_video 表数据,仅保留最近 14 天(含今天)。
+     * 即删除 dt < (今天-14) 的所有记录。param 可传 cutoff dt(yyyyMMdd)覆盖默认值,便于回溯/调试。
+     */
+    @XxlJob("cleanContentPlatformDemandVideoJob")
+    public ReturnT<String> cleanContentPlatformDemandVideoJob(String param) {
+        String cutoffDt;
+        if (StringUtils.hasText(param)) {
+            cutoffDt = param;
+        } else {
+            cutoffDt = DateUtil.getBeforeDayDateString(14, "yyyyMMdd");
+        }
+        log.info("cleanContentPlatformDemandVideoJob start, cutoffDt={}", cutoffDt);
+        try {
+            int rows = demandVideoMapperExt.deleteByDtLessThan(cutoffDt);
+            log.info("cleanContentPlatformDemandVideoJob success, cutoffDt={}, deletedRows={}", cutoffDt, rows);
+        } catch (Exception e) {
+            log.error("cleanContentPlatformDemandVideoJob error, cutoffDt={}", cutoffDt, e);
+            return ReturnT.FAIL;
+        }
+        return ReturnT.SUCCESS;
+    }
+
     @XxlJob("checkContentPlatformDemandVideoStatusJob")
     public ReturnT<String> checkContentPlatformDemandVideoStatusJob(String param) {
         String dt = demandVideoMapperExt.getMaxDt(null);

+ 4 - 0
api-module/src/main/resources/mapper/contentplatform/ext/ContentPlatformDemandVideoMapperExt.xml

@@ -29,6 +29,10 @@
         DELETE FROM content_platform_demand_video WHERE dt = #{dt}
     </delete>
 
+    <delete id="deleteByDtLessThan">
+        DELETE FROM content_platform_demand_video WHERE dt &lt; #{dt}
+    </delete>
+
     <delete id="deleteByDtAndChannelName">
         DELETE FROM content_platform_demand_video WHERE dt = #{dt} AND channel_name = #{channelName}
     </delete>