From 83024eccacc54be0e60eee14d19d03bf9d63ba78 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期四, 11 七月 2024 11:41:54 +0800 Subject: [PATCH] 调整session、caffeine存活时间 --- src/main/java/com/ycl/jxkg/job/StudyRecordJob.java | 39 ++++++++++++++++++++------------------- src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | 11 ++++++----- src/main/java/com/ycl/jxkg/config/CaffeineConfig.java | 4 ++-- src/main/resources/application.yml | 2 +- 4 files changed, 29 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java b/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java index 118a563..f07dd64 100644 --- a/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java +++ b/src/main/java/com/ycl/jxkg/config/CaffeineConfig.java @@ -17,8 +17,8 @@ @Bean public Cache<String, Object> caffeineCache() { Cache<String, Object> caffeineCache = Caffeine.newBuilder() - // 璁剧疆鏈�鍚庝竴娆″啓鍏ユ垨璁块棶鍚庣粡杩囧浐瀹氭椂闂磋繃鏈� - .expireAfterWrite(600, TimeUnit.SECONDS) + // 璁剧疆鏈�鍚庝竴娆″啓鍏ユ垨璁块棶鍚庣粡杩囧浐瀹氭椂闂�(12灏忔椂)杩囨湡 + .expireAfterWrite(43200, TimeUnit.SECONDS) // 鍒濆鐨勭紦瀛樼┖闂村ぇ灏� .initialCapacity(10) // 缂撳瓨鐨勬渶澶ф潯鏁� diff --git a/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java b/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java index ee588fc..c901abd 100644 --- a/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java +++ b/src/main/java/com/ycl/jxkg/job/StudyRecordJob.java @@ -38,30 +38,31 @@ log.info("寮�濮嬪瓨瀛︿範鏃堕暱"); List<StudyRecord> cacheList = new ArrayList<>(); // 鍙栧嚭鎵�鏈夊涔犺褰曠紦瀛橀」 - ConcurrentMap<String, Object> map = caffeineCache.asMap(); - Map<String,StudyRecord> studyMap = (Map<String, StudyRecord>) map.get(CaffeineConstant.STUDY_RECORD); - for (Map.Entry<String, StudyRecord> entry : studyMap.entrySet()) { - cacheList.add(entry.getValue()); - } + Map<String, StudyRecord> studyMap = (Map<String, StudyRecord>) caffeineCache.getIfPresent(CaffeineConstant.STUDY_RECORD); + if (!CollectionUtils.isEmpty(studyMap)) { + for (Map.Entry<String, StudyRecord> entry : studyMap.entrySet()) { + cacheList.add(entry.getValue()); + } - List<Integer> studentIds = cacheList.stream().map(StudyRecord::getStudentId).collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(studentIds)) { - //鏁版嵁搴撲腑宸茬粡瀛樺湪鐨勫鐢熸暟鎹� - QueryWrapper<StudyRecord> wrapper = new QueryWrapper<>(); - wrapper.in("student_id", studentIds); - List<StudyRecord> studyRecords = studyRecordMapper.selectList(wrapper); - for (StudyRecord record : studyRecords) { - for (StudyRecord cacheRecord : cacheList) { - if (record.getStudentId().equals(cacheRecord.getStudentId())) { - cacheRecord.setId(record.getId()); - cacheRecord.setStudyTime(record.getStudyTime() + cacheRecord.getStudyTime()); - cacheRecord.setMeetCount(record.getMeetCount()); + List<Integer> studentIds = cacheList.stream().map(StudyRecord::getStudentId).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(studentIds)) { + //鏁版嵁搴撲腑宸茬粡瀛樺湪鐨勫鐢熸暟鎹� + QueryWrapper<StudyRecord> wrapper = new QueryWrapper<>(); + wrapper.in("student_id", studentIds); + List<StudyRecord> studyRecords = studyRecordMapper.selectList(wrapper); + for (StudyRecord record : studyRecords) { + for (StudyRecord cacheRecord : cacheList) { + if (record.getStudentId().equals(cacheRecord.getStudentId())) { + cacheRecord.setId(record.getId()); + cacheRecord.setStudyTime(record.getStudyTime() + cacheRecord.getStudyTime()); + cacheRecord.setMeetCount(record.getMeetCount()); + } } } + studyRecordService.saveOrUpdateBatch(cacheList); } - studyRecordService.saveOrUpdateBatch(cacheList); + caffeineCache.invalidate(CaffeineConstant.STUDY_RECORD); } - caffeineCache.invalidate(CaffeineConstant.STUDY_RECORD); log.info("缁撴潫瀛樺涔犳椂闀�"); } } diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java index 0f0e2f8..b7b26f0 100644 --- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java +++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java @@ -597,11 +597,11 @@ @Override public Result getMarkPaperInfo(Integer examId, Integer userId) { + User student = userMapper.getUserById(userId); //濡傛灉宸茬粡闃呰繃鍗蜂簡锛屾煡鎴愮哗琛� - Result<ExamPaperMarkVO> paperMarkVO1 = checkHasJudge(examId, userId); + Result<ExamPaperMarkVO> paperMarkVO1 = checkHasJudge(examId, student); if (paperMarkVO1 != null) return paperMarkVO1; - User student = userMapper.getUserById(userId); ExamVO exam = examMapper.getById(examId); //瀛︾敓绛旈琛� ExamSubmitTemp userExam = new LambdaQueryChainWrapper<>(examSubmitTempMapper) @@ -643,11 +643,12 @@ } //妫�鏌ユ槸鍚﹂槄鍗� - private Result<ExamPaperMarkVO> checkHasJudge(Integer examId, Integer userId) { - ExamPaperScore examPaperScore = examPaperScoreMapper.getByExamIdUserId(examId, userId); + private Result<ExamPaperMarkVO> checkHasJudge(Integer examId, User student) { + ExamPaperScore examPaperScore = examPaperScoreMapper.getByExamIdUserId(examId, student.getId()); if (examPaperScore != null) { ExamPaperMarkVO paperMarkVO = new ExamPaperMarkVO(); BeanUtils.copyProperties(examPaperScore, paperMarkVO); + paperMarkVO.setUserName(student.getRealName()); paperMarkVO.setTotalScore(examPaperScore.getTotalScore() + ""); paperMarkVO.setScore(examPaperScore.getScore() + ""); if (!StringUtils.isEmpty(examPaperScore.getPaperContent())) { @@ -841,7 +842,7 @@ paperMarkVO.setTitleItems(JSON.parseArray(userExam.getExamSubmit(), PaperFixQuestionVO.class)); } else { //缂鸿�冿紝瀛︾敓娌℃湁鍋氶淇℃伅 - paperMarkVO.setExamId(exam.getExamPaperId()); + paperMarkVO.setExamId(exam.getId()); paperMarkVO.setUserId(student.getId()); paperMarkVO.setScore(BigDecimal.ZERO + ""); paperMarkVO.setDoTime(0); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0463e0e..7e33641 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,7 +1,7 @@ server: servlet: session: - timeout: 7200 + timeout: 18000 port: 8000 undertow: io-threads: 16 -- Gitblit v1.8.0