WANG 6 سال پیش
والد
کامیت
e61349aa58

+ 21 - 17
examcloud-task-dao/src/main/java/cn/com/qmth/examcloud/task/dao/TaskTraceRepo.java

@@ -1,17 +1,21 @@
-package cn.com.qmth.examcloud.task.dao;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
-import org.springframework.stereotype.Repository;
-
-import cn.com.qmth.examcloud.task.dao.entity.TaskTraceEntity;
-
-@Repository
-public interface TaskTraceRepo
-		extends
-			JpaRepository<TaskTraceEntity, Long>,
-			JpaSpecificationExecutor<TaskTraceEntity> {
-
-	TaskTraceEntity findByTraceId(String traceId);
-
-}
+package cn.com.qmth.examcloud.task.dao;
+
+import java.util.Date;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+import cn.com.qmth.examcloud.task.dao.entity.TaskTraceEntity;
+
+@Repository
+public interface TaskTraceRepo
+		extends
+			JpaRepository<TaskTraceEntity, Long>,
+			JpaSpecificationExecutor<TaskTraceEntity> {
+
+	TaskTraceEntity findByTraceId(String traceId);
+
+	void deleteByCreationTimeLessThan(Date date);
+
+}

+ 6 - 31
examcloud-task-service/src/main/java/cn/com/qmth/examcloud/task/service/job/TaskTraceCleanTask.java

@@ -1,25 +1,15 @@
 package cn.com.qmth.examcloud.task.service.job;
 
-import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
-import java.util.List;
-
-import javax.persistence.criteria.Predicate;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Component;
 
 import cn.com.qmth.examcloud.task.base.AbstractTask;
 import cn.com.qmth.examcloud.task.base.ScheduleJob;
 import cn.com.qmth.examcloud.task.base.TaskTracker;
 import cn.com.qmth.examcloud.task.dao.TaskTraceRepo;
-import cn.com.qmth.examcloud.task.dao.entity.TaskTraceEntity;
 
 /**
  * 任务跟踪记录清理
@@ -39,27 +29,12 @@ public class TaskTraceCleanTask extends AbstractTask {
 
 	@Override
 	public void run(ScheduleJob scheduleJob) throws Exception {
-		Specification<TaskTraceEntity> specification = (root, query, cb) -> {
-			List<Predicate> predicates = new ArrayList<>();
-			// 清理过去7天前的数据
-			Calendar c = Calendar.getInstance();
-			c.setTime(new Date());
-			c.add(Calendar.DATE, -7);
-			Date d = c.getTime();
-			Predicate p3 = cb.lessThan(root.get("creationTime"), d);
-			predicates.add(p3);
-
-			return cb.and(predicates.toArray(new Predicate[predicates.size()]));
-		};
-
-		while (true) {
-			Pageable pageable = new PageRequest(0, 50, Sort.Direction.ASC, "creationTime");
-			Page<TaskTraceEntity> list = taskTraceRepo.findAll(specification, pageable);
-			if (1 > list.getSize()) {
-				break;
-			}
-			taskTraceRepo.delete(list);
-		}
+		// 清理过去7天前的数据
+		Calendar c = Calendar.getInstance();
+		c.setTime(new Date());
+		c.add(Calendar.DATE, -7);
+		Date d = c.getTime();
+		taskTraceRepo.deleteByCreationTimeLessThan(d);
 	}
 
 	@Override

+ 2 - 0
examcloud-task-starter/src/main/resources/application-dev.properties

@@ -10,6 +10,8 @@ eureka.client.serviceUrl.defaultZone=http://eureka-host:1111/eureka/
 $tempDir=D:/Temp/tempDir
 $dir=D:/Temp/dir
 
+$log.level.default=debug
+
 $sync.async=false
 
 $sync.syncStudent.group=EXAMWORK,MARKING,OE

+ 2 - 0
examcloud-task-starter/src/main/resources/application-prod.properties

@@ -14,6 +14,8 @@ spring.redis.pool.max-active=2000
 $tempDir=/root/project/examcloud/examcloud-task/tempDir
 $dir=/root/project/examcloud/examcloud-task/dir
 
+$log.level.default=error
+
 $sync.async=true
 
 $sync.syncStudent.group=EXAMWORK,MARKING,OE

+ 2 - 0
examcloud-task-starter/src/main/resources/application-test.properties

@@ -12,6 +12,8 @@ eureka.client.serviceUrl.defaultZone=http://eureka-host:1111/eureka/
 $tempDir=/home/qmth/project/examcloud/examcloud-task/tempDir
 $dir=/home/qmth/project/examcloud/examcloud-task/dir
 
+$log.level.default=debug
+
 $sync.async=false
 
 $sync.syncStudent.group=EXAMWORK,MARKING,OE

+ 8 - 8
examcloud-task-starter/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration debug="true" scan="true" scanPeriod="30 seconds">
 
-	<springProperty scope="context" name="logdir" source="logback.logdir" />
+	<springProperty scope="context" name="logLevel" source="$log.level.default" />
 
 	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
 		<encoder>
@@ -48,7 +48,7 @@
 		</rollingPolicy>
 	</appender>
 
-	<logger name="cn.com.qmth.examcloud" level="DEBUG" additivity="false">
+	<logger name="cn.com.qmth.examcloud" level="${logLevel}" additivity="false">
 		<appender-ref ref="DEBUG_APPENDER" />
 		<appender-ref ref="STDOUT" />
 	</logger>
@@ -63,12 +63,12 @@
 		<appender-ref ref="STDOUT" />
 	</logger>
 
-	<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="ERROR" />
-	<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="ERROR" />
-	<logger name="org.hibernate.SQL" level="ERROR" />
-	<logger name="org.hibernate.type" level="ERROR" />
-	<logger name="org.hibernate.engine.QueryParameters" level="ERROR" />
-	<logger name="org.hibernate.engine.query.HQLQueryPlan" level="ERROR" />
+	<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="${logLevel}" />
+	<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="${logLevel}" />
+	<logger name="org.hibernate.SQL" level="${logLevel}" />
+	<logger name="org.hibernate.type" level="${logLevel}" />
+	<logger name="org.hibernate.engine.QueryParameters" level="${logLevel}" />
+	<logger name="org.hibernate.engine.query.HQLQueryPlan" level="${logLevel}" />
 
 	<root level="INFO">
 		<appender-ref ref="DEBUG_APPENDER" />