--- src/main/java/com/munjaon/server/server/task/ReportQueueTask.java
+++ src/main/java/com/munjaon/server/server/task/ReportQueueTask.java
... | ... | @@ -73,32 +73,44 @@ |
| 73 | 73 |
public void run() {
|
| 74 | 74 |
/* 정상적인 Report Queue 저장로직을 수행할 경우 */ |
| 75 | 75 |
int cntReport = 0; |
| 76 |
- if (isProcessRun) {
|
|
| 76 |
+ while (isProcessRun) {
|
|
| 77 |
+ /* 리포트큐가 max에 도달한 경우 */ |
|
| 78 |
+ if (reportQueue.isWriteLimit(reportUserDto.getMaxQueueCount())) {
|
|
| 79 |
+ break; |
|
| 80 |
+ } |
|
| 81 |
+ |
|
| 82 |
+ /* DB : 리포트 데이터 조회 */ |
|
| 77 | 83 |
ReportService reportService = (ReportService) CacheService.REPORT_SERVICE.getService(); |
| 78 | 84 |
List<ReportDto> list = reportService.getReportListForUser(reportUserDto.getUserId()); |
| 79 | 85 |
|
| 80 |
- /* Report Queue 저장 & DB 데이터 삭제 */ |
|
| 81 |
- if (list != null && list.size() > 0) {
|
|
| 82 |
- List<String> msgList = new ArrayList<>(); |
|
| 83 |
- /* Report Queue에 저장 */ |
|
| 84 |
- for (ReportDto dto : list) {
|
|
| 85 |
- boolean isError = false; |
|
| 86 |
- try {
|
|
| 87 |
- reportQueue.pushReportToQueue(dto); |
|
| 88 |
- msgList.add(dto.getMsgId()); |
|
| 89 |
- cntReport++; // Report를 처리한 카운트 |
|
| 90 |
- saveLog("reportDto : " + dto.toString());
|
|
| 91 |
- } catch (Exception e) {
|
|
| 92 |
- saveLog("ReportQueueTask ERROR");
|
|
| 93 |
- saveLog(e); |
|
| 94 |
- isError = true; |
|
| 95 |
- } |
|
| 96 |
- /* 에러인 경우 */ |
|
| 97 |
- if (isError) {
|
|
| 98 |
- break; |
|
| 99 |
- } |
|
| 100 |
- } |
|
| 86 |
+ /* 리포트 처리를 할 대상이 없는 경우 */ |
|
| 87 |
+ if (list == null || list.isEmpty()) {
|
|
| 88 |
+ break; |
|
| 89 |
+ } |
|
| 101 | 90 |
|
| 91 |
+ /* 리포트 큐에 저장 */ |
|
| 92 |
+ boolean isError = false; |
|
| 93 |
+ List<String> msgList = new ArrayList<>(); |
|
| 94 |
+ /* Report Queue에 저장 */ |
|
| 95 |
+ for (ReportDto dto : list) {
|
|
| 96 |
+ try {
|
|
| 97 |
+ reportQueue.pushReportToQueue(dto); |
|
| 98 |
+ msgList.add(dto.getMsgId()); |
|
| 99 |
+ cntReport++; // Report를 처리한 카운트 |
|
| 100 |
+ saveLog("reportDto : " + dto.toString());
|
|
| 101 |
+ } catch (Exception e) {
|
|
| 102 |
+ saveLog("ReportQueueTask ERROR");
|
|
| 103 |
+ saveLog(e); |
|
| 104 |
+ isError = true; |
|
| 105 |
+ } |
|
| 106 |
+ /* 에러인 경우 */ |
|
| 107 |
+ if (isError) {
|
|
| 108 |
+ break; |
|
| 109 |
+ } |
|
| 110 |
+ } |
|
| 111 |
+ |
|
| 112 |
+ /* Report DB 데이터 삭제 */ |
|
| 113 |
+ try {
|
|
| 102 | 114 |
/* DB에서 데이터 삭제 */ |
| 103 | 115 |
if (msgList.size() > 0) {
|
| 104 | 116 |
Map<String, Object> reqMap = new HashMap<>(); |
... | ... | @@ -106,6 +118,14 @@ |
| 106 | 118 |
reqMap.put("msgList", msgList);
|
| 107 | 119 |
reportService.deleteBulkReport(reqMap); |
| 108 | 120 |
} |
| 121 |
+ } catch (Exception e) {
|
|
| 122 |
+ saveLog("ReportQueueTask SQL ERROR");
|
|
| 123 |
+ saveLog(e); |
|
| 124 |
+ isError = true; |
|
| 125 |
+ } |
|
| 126 |
+ /* 에러인 경우 */ |
|
| 127 |
+ if (isError) {
|
|
| 128 |
+ break; |
|
| 109 | 129 |
} |
| 110 | 130 |
} |
| 111 | 131 |
|
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?