Commit 8c89bf6af3a8bbc0aab8205a1095c91c03f30378

Authored by 张志伟
1 parent 2d727f47

:bug: bug调整

fw-valhalla-rpc/src/main/java/cn/fw/valhalla/rpc/erp/TodoRpcService.java
@@ -17,10 +17,7 @@ import org.springframework.data.redis.core.StringRedisTemplate; @@ -17,10 +17,7 @@ import org.springframework.data.redis.core.StringRedisTemplate;
17 import org.springframework.stereotype.Service; 17 import org.springframework.stereotype.Service;
18 import org.springframework.util.CollectionUtils; 18 import org.springframework.util.CollectionUtils;
19 19
20 -import java.util.ArrayList;  
21 -import java.util.List;  
22 -import java.util.Objects;  
23 -import java.util.Optional; 20 +import java.util.*;
24 import java.util.stream.Collectors; 21 import java.util.stream.Collectors;
25 22
26 /** 23 /**
@@ -163,28 +160,27 @@ public class TodoRpcService { @@ -163,28 +160,27 @@ public class TodoRpcService {
163 } 160 }
164 return Optional.of(dto); 161 return Optional.of(dto);
165 } catch (Exception e) { 162 } catch (Exception e) {
166 - log.error("缓存设置信息失败 key[{}]", key, e); 163 + log.error("缓存信息获取失败 key[{}]", key, e);
167 return Optional.empty(); 164 return Optional.empty();
168 } 165 }
169 } 166 }
170 167
171 - public List<BackLogItemDTO> getAllFromCache(final String key) { 168 + public Collection<BackLogItemDTO> getAllFromCache(final String key) {
172 try { 169 try {
173 Boolean hasKey = redisTemplate.hasKey(key); 170 Boolean hasKey = redisTemplate.hasKey(key);
174 if (!Boolean.TRUE.equals(hasKey)) { 171 if (!Boolean.TRUE.equals(hasKey)) {
175 - return new ArrayList<>(); 172 + return new HashSet<>();
176 } 173 }
177 BoundListOperations<String, String> ops = redisTemplate.boundListOps(key); 174 BoundListOperations<String, String> ops = redisTemplate.boundListOps(key);
178 List<String> stringList = ops.range(0, -1); 175 List<String> stringList = ops.range(0, -1);
  176 + redisTemplate.delete(key);
179 if (CollectionUtils.isEmpty(stringList)) { 177 if (CollectionUtils.isEmpty(stringList)) {
180 - return new ArrayList<>(); 178 + return new HashSet<>();
181 } 179 }
182 - List<BackLogItemDTO> dtos = stringList.stream().map(str -> JSONObject.parseObject(str, BackLogItemDTO.class)).collect(Collectors.toList());  
183 - redisTemplate.delete(key);  
184 - return dtos; 180 + return stringList.stream().map(str -> JSONObject.parseObject(str, BackLogItemDTO.class)).collect(Collectors.toSet());
185 } catch (Exception e) { 181 } catch (Exception e) {
186 - log.error("缓存设置信息失败 key[{}]", key, e);  
187 - return new ArrayList<>(); 182 + log.error("缓存信息获取失败 key[{}]", key, e);
  183 + return new HashSet<>();
188 } 184 }
189 } 185 }
190 186
fw-valhalla-rpc/src/main/java/cn/fw/valhalla/rpc/erp/dto/BackLogItemDTO.java
1 package cn.fw.valhalla.rpc.erp.dto; 1 package cn.fw.valhalla.rpc.erp.dto;
2 2
3 import lombok.Data; 3 import lombok.Data;
  4 +import lombok.EqualsAndHashCode;
4 import lombok.ToString; 5 import lombok.ToString;
5 6
6 import java.util.Date; 7 import java.util.Date;
@@ -14,6 +15,7 @@ import java.util.Objects; @@ -14,6 +15,7 @@ import java.util.Objects;
14 */ 15 */
15 @Data 16 @Data
16 @ToString 17 @ToString
  18 +@EqualsAndHashCode
17 public class BackLogItemDTO { 19 public class BackLogItemDTO {
18 /** 20 /**
19 * 发送次数 21 * 发送次数
fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/task/FollowRecordTask.java
@@ -22,9 +22,9 @@ import org.springframework.util.CollectionUtils; @@ -22,9 +22,9 @@ import org.springframework.util.CollectionUtils;
22 22
23 import java.time.LocalDateTime; 23 import java.time.LocalDateTime;
24 import java.util.ArrayList; 24 import java.util.ArrayList;
  25 +import java.util.Collection;
25 import java.util.List; 26 import java.util.List;
26 import java.util.Objects; 27 import java.util.Objects;
27 -import java.util.Optional;  
28 28
29 /** 29 /**
30 * @author : kurisu 30 * @author : kurisu
@@ -125,21 +125,21 @@ public class FollowRecordTask { @@ -125,21 +125,21 @@ public class FollowRecordTask {
125 /** 125 /**
126 * 完成待办的重试 126 * 完成待办的重试
127 */ 127 */
128 - @Scheduled(initialDelay = 1500, fixedRate = 1000) 128 + @Scheduled(initialDelay = 1500, fixedRate = 15 * 1000)
129 public void retryCompleteTodoItem() { 129 public void retryCompleteTodoItem() {
130 String key = todoRpcService.generateKey(TodoRpcService.TodoOperationEnum.COMPLETE); 130 String key = todoRpcService.generateKey(TodoRpcService.TodoOperationEnum.COMPLETE);
131 - Optional<BackLogItemDTO> fromCache = todoRpcService.getOneFromCache(key);  
132 - fromCache.ifPresent(todoRpcService::complete); 131 + Collection<BackLogItemDTO> all = todoRpcService.getAllFromCache(key);
  132 + all.forEach(todoRpcService::complete);
133 } 133 }
134 134
135 /** 135 /**
136 * 取消待办的重试 136 * 取消待办的重试
137 */ 137 */
138 - @Scheduled(initialDelay = 1000, fixedRate = 1000) 138 + @Scheduled(initialDelay = 1000, fixedRate = 10 * 1000)
139 public void retryCancelTodoItem() { 139 public void retryCancelTodoItem() {
140 String key = todoRpcService.generateKey(TodoRpcService.TodoOperationEnum.CANCEL); 140 String key = todoRpcService.generateKey(TodoRpcService.TodoOperationEnum.CANCEL);
141 - Optional<BackLogItemDTO> fromCache = todoRpcService.getOneFromCache(key);  
142 - fromCache.ifPresent(todoRpcService::cancel); 141 + Collection<BackLogItemDTO> all = todoRpcService.getAllFromCache(key);
  142 + all.forEach(todoRpcService::cancel);
143 } 143 }
144 144
145 145