Browse Source

更新平台异常日志清理方法

hejq 7 years ago
parent
commit
2ec40fa6b3
1 changed files with 10 additions and 7 deletions
  1. 10 7
      src/main/java/com/uas/platform/b2b/task/ErrorLogTask.java

+ 10 - 7
src/main/java/com/uas/platform/b2b/task/ErrorLogTask.java

@@ -20,19 +20,22 @@ public class ErrorLogTask {
     private JdbcTemplate jdbcTemplate;
     private JdbcTemplate jdbcTemplate;
 
 
     /**
     /**
-     * 每天凌晨0点到1点开始执行
+     * 每天凌晨0点到2点开始执行
      */
      */
-    @Scheduled(cron = "0 0/5 0,1 1 * ? ")
+    @Scheduled(cron = "0 0/5 0,1,2 * * ? ")
     public void deleteLogs() {
     public void deleteLogs() {
-         // 删除日志明细
+        // 先查询最大id
+        Long maxId = jdbcTemplate.queryForObject("select max(log_id) from log$error where date_format(log_date, '%Y-%m-%d') <= date_format(date_add(now(), interval -2 day), '%Y-%m-%d')", Long.class);
+
+        // 删除日志明细
         jdbcTemplate.execute("delete from log$error$detail where log_logid in (select log_id from log$error " +
         jdbcTemplate.execute("delete from log$error$detail where log_logid in (select log_id from log$error " +
-                "where date_format(log_date, '%Y-%m-%d') <= date_format(date_add(now(), interval -1 week), '%Y-%m-%d')) limit 1000");
+                "where log_logid <= " + maxId + " limit 10000");
         // 删除日志主表信息
         // 删除日志主表信息
         jdbcTemplate.execute("delete from log$error " +
         jdbcTemplate.execute("delete from log$error " +
-                "where date_format(log_date, '%Y-%m-%d') <= date_format(date_add(now(), interval -1 week), '%Y-%m-%d') limit 1000");
+                "where log_id <= " + maxId + " limit 10000");
         // 删除单据记录
         // 删除单据记录
-        jdbcTemplate.execute("delete from erp$orders where date_format(or_date, '%Y-%m-%d') <= date_format(date_add(now(), interval -1 week), '%Y-%m-%d') limit 1000");
+        jdbcTemplate.execute("delete from erp$orders where date_format(or_date, '%Y-%m-%d') <= date_format(date_add(now(), interval -2 day), '%Y-%m-%d') limit 10000");
         // 删除物料记录
         // 删除物料记录
-        jdbcTemplate.execute("delete from erp$products where date_format(pr_date, '%Y-%m-%d') <= date_format(date_add(now(), interval -1 week), '%Y-%m-%d') limit 1000");
+        jdbcTemplate.execute("delete from erp$products where date_format(pr_date, '%Y-%m-%d') <= date_format(date_add(now(), interval -2 day), '%Y-%m-%d') limit 10000");
     }
     }
 }
 }