브라우저에서 파일을 다운로드할 때 총 2회의 요청을 보내는데 어떻게'다운로드 횟수'를 1회로 기록합니까?
@RequestMapping(value = "/download/pdf")
public void downloadPdf(@RequestParam Integer id, HttpServletRequest req,
HttpServletResponse res) {
Map<String, Object> article = articleService.get(id);
PdfDownload.doDownloadPdfPostWithShuiyin(req, res, article);
articleService.plusDownloadCount(id);
}
그래서 ThreadLocal
현재 두 가지 문제가 있습니다.나는 나의 최초의 생각을 실현하고 싶다.브라우저가 요청을 두 번 보내고 다운로드 횟수가 두 번 업데이트되었습니다.한 번만 업데이트해서 다운로드 횟수를 정확하게 보여줄 수 있을까!!!이것은 나는 아직 좋은 방법을 생각하지 못했다.2. 수요를 바꾸면 한 사용자가 일정 기간 동안 한 편의 글을 다운로드하면 몇 번이든 한 번만 계산한다.다른 글을 다운로드하는 횟수는 1회로 늘려야 한다.내 생각: 다운로드한 대기열을 저장하고 사용자의 IP와 글의 id를 키로 공유합니다.사용자가 한 번 다운로드하면 사용자 IP와 글 ID로 구성된 키를 대기열에 저장합니다.새 다운로드 요청이 왔을 때, 대기열에서 키가 이미 존재하는지, 존재하지 않으면 +1입니다.그렇지 않으면 업데이트 횟수가 없습니다.
원문 첫머리:http://fansunion.cn/article/detail/141.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 라인과synchronized 키워드를 깊이 있게 설명하다루틴이야말로 프로그램의 집행자이고 여러 루틴 간에 프로세스 중의 자원을 공유하고 있다.하나의 cpu는 동시에 하나의 라인만 실행할 수 있으며, 모든 라인은 하나의 타임 슬라이스가 있으며, 타임 슬라이스가 다 사용하면...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.