|
|
@@ -91,26 +91,28 @@ public class InsertUserStateUtil {
|
|
|
|
|
|
// 处理在线用户
|
|
|
processUserStates(onlineUsers, userMap, latestUserStateMap, 1, userStateStatisticsService);
|
|
|
- // 推送信息
|
|
|
- String data = objStr(offlineUsersAll.size());
|
|
|
- log.info("准备推送数据: {}, 目标用户数: {}", data, userLists.size());
|
|
|
- // 先批量检查在线状态,减少重复调用
|
|
|
- List<String> onlineUserList = userLists.stream()
|
|
|
- .filter(webSocketServer::userOnline)
|
|
|
- .collect(Collectors.toList());
|
|
|
-
|
|
|
- log.info("在线用户数: {}", onlineUserList.size());
|
|
|
-
|
|
|
- // 批量推送
|
|
|
- onlineUserList.parallelStream().forEach(userId -> {
|
|
|
- try {
|
|
|
- webSocketServer.sendOneMessage(userId, data);
|
|
|
- log.info("推送成功 - 用户: {}", userId);
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("推送消息给用户 {} 时发生异常: {}", userId, e.getMessage(), e);
|
|
|
- }
|
|
|
- });
|
|
|
- log.info("推送完成,成功推送数: {}", onlineUserList.size());
|
|
|
+ if (!offlineUsersAll.isEmpty()) {
|
|
|
+ // 推送信息
|
|
|
+ String data = objStr(offlineUsersAll.size());
|
|
|
+ log.info("准备推送数据: {}, 目标用户数: {}", data, userLists.size());
|
|
|
+ // 先批量检查在线状态,减少重复调用
|
|
|
+ List<String> onlineUserList = userLists.stream()
|
|
|
+ .filter(webSocketServer::userOnline)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ log.info("在线用户数: {}", onlineUserList.size());
|
|
|
+
|
|
|
+ // 批量推送
|
|
|
+ onlineUserList.parallelStream().forEach(userId -> {
|
|
|
+ try {
|
|
|
+ webSocketServer.sendOneMessage(userId, data);
|
|
|
+ log.info("推送成功 - 用户: {}", userId);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("推送消息给用户 {} 时发生异常: {}", userId, e.getMessage(), e);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ log.info("推送完成,成功推送数: {}", onlineUserList.size());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|