Sfoglia il codice sorgente

阅卷接口添加日志,跟踪慢的原因

lideyin 5 anni fa
parent
commit
6c1b944a99

+ 26 - 3
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/provider/ExamQuestionOuterServiceProvider.java

@@ -13,7 +13,6 @@ import cn.com.qmth.examcloud.exchange.outer.api.request.OuterGetQuestionAnswerRe
 import cn.com.qmth.examcloud.exchange.outer.api.request.OuterGetSubjectivePaperStructReq;
 import cn.com.qmth.examcloud.exchange.outer.api.request.OuterGetSubjectiveQuestionReq;
 import cn.com.qmth.examcloud.exchange.outer.api.response.OuterGetQuestionAnswerResp;
-import cn.com.qmth.examcloud.exchange.outer.api.response.OuterGetScoreQueueTopResp;
 import cn.com.qmth.examcloud.exchange.outer.api.response.OuterGetSubjectivePaperStructResp;
 import cn.com.qmth.examcloud.exchange.outer.api.response.OuterGetSubjectiveQuestionResp;
 import cn.com.qmth.examcloud.exchange.outer.service.OutletPaperStructService;
@@ -69,6 +68,7 @@ public class ExamQuestionOuterServiceProvider extends ControllerSupport implemen
     @Autowired
     private OutletPaperStructService outletPaperStructService;
 
+
     @Override
     @ApiOperation(value = "获取主观题试卷结构", httpMethod = "POST")
     @ApiResponses({@ApiResponse(code = 200, message = "成功", response = OuterGetSubjectivePaperStructResp.class),
@@ -127,6 +127,8 @@ public class ExamQuestionOuterServiceProvider extends ControllerSupport implemen
     @PostMapping("/getSubjectiveQuestion")
     @Override
     public OuterGetSubjectiveQuestionResp getSubjectiveQuestion(@RequestBody OuterGetSubjectiveQuestionReq req) {
+        Long st = System.currentTimeMillis();
+
         Long examId = req.getExamId();
         if (null == examId) {
             throw new StatusException("101001", "考试id不允许为空");
@@ -151,6 +153,11 @@ public class ExamQuestionOuterServiceProvider extends ControllerSupport implemen
             throw new StatusException("101005", "数据量最大不得超过500");
         }
 
+        long startTime = System.currentTimeMillis();
+        if (log.isDebugEnabled()) {
+            log.debug("0 [GET_SUBJECTIVE_QUESTION-" + examId + "-" + subjectCode + "-" + startId + "] start...");
+        }
+
         GetPagedToBeMarkExamRecordReq pagedReq = new GetPagedToBeMarkExamRecordReq();
         pagedReq.setExamId(examId);
         pagedReq.setSubjectCode(subjectCode);
@@ -158,10 +165,27 @@ public class ExamQuestionOuterServiceProvider extends ControllerSupport implemen
         pagedReq.setSize(size);
         GetPagedToBeMarkExamRecordResp pagedResp = examRecordCloudService.getPagedToBeMarkExamRecord(pagedReq);
 
+        if (log.isDebugEnabled()) {
+            log.debug("1.[GET_SUBJECTIVE_QUESTION-" + examId + "-" + subjectCode + "-" + startId + "]" +
+                    "通过rpc获取待阅卷列表耗时:" + (System.currentTimeMillis() - startTime) + " ms");
+        }
+
+        startTime = System.currentTimeMillis();
+
         OuterGetSubjectiveQuestionResp resp = new OuterGetSubjectiveQuestionResp();
         resp.setNextId(pagedResp.getNextId());
         resp.setDataList(getOuterExamRecordBean(pagedResp.getToBeMarkExamRecordBeanList()));
 
+        if (log.isDebugEnabled()) {
+            log.debug("2.[GET_SUBJECTIVE_QUESTION-" + examId + "-" + subjectCode + "-" + startId + "]" +
+                    "构造满足条件的考试记录集合耗时:" + (System.currentTimeMillis() - startTime) + " ms");
+        }
+
+        if (log.isDebugEnabled()) {
+            log.debug("999.[GET_SUBJECTIVE_QUESTION-" + examId + "-" + subjectCode + "-" + startId + "] end..." +
+                    "合计耗时:" + (System.currentTimeMillis() - st) + " ms");
+        }
+
         return resp;
     }
 
@@ -172,7 +196,7 @@ public class ExamQuestionOuterServiceProvider extends ControllerSupport implemen
     @Override
     public OuterGetQuestionAnswerResp getQuestionAnswer(@RequestBody OuterGetQuestionAnswerReq req) {
         if (StringUtils.isNullOrEmpty(req.getQuestionId())) {
-            throw new StatusException("102001","题目id不允许为空");
+            throw new StatusException("102001", "题目id不允许为空");
         }
 
         QuestionAnswerCacheBean questionAnswer = CacheHelper.getQuestionAnswer(req.getQuestionId());
@@ -590,5 +614,4 @@ public class ExamQuestionOuterServiceProvider extends ControllerSupport implemen
         String regExp = "^(ftp|https?)\\:\\/\\/([\\w\\_\\-]+)\\.([\\w\\-]+[\\.]?)*[\\w]+\\.[a-zA-Z]{2,10}(.*)\\.(mp3)";
         return studentAnswer.matches(regExp);
     }
-
 }