Commit 08d483567ed45a5a716a916e9048c67a6a38fd65

Authored by 周峰
1 parent a3c7c285

@Async注解实现延时发送

src/main/java/com/huaheng/pc/stompwebsocket/service/StompWebSocketServiceImpl.java
... ... @@ -76,21 +76,29 @@ public class StompWebSocketServiceImpl extends ServiceImpl<StompMessageMapper, S
76 76 messaging.convertAndSendToUser(user, topic, payload.getData(), headers);
77 77 }
78 78  
79   - public void confirmMsg(String msg_id){
  79 + public void confirmMsg(String msg_id) {
80 80 removeById(msg_id);
81 81 }
82 82  
83 83 /**
84 84 * 将离线后的消息发送给用户
  85 + *
85 86 * @param user
86 87 */
87   - public void sendOfflineMessageToUser(String user){
88   - LambdaQueryWrapper<StompMessage> queryWrapper = Wrappers.lambdaQuery();
89   - queryWrapper.eq(StompMessage::getUser, user);
90   - List<StompMessage> msgList = list(queryWrapper);
91   - for(StompMessage msg : msgList){
92   - messaging.convertAndSendToUser(user, msg.getTopic(), msg.getMsg());
93   - removeById(msg.getId());
  88 + @Async
  89 + public void sendOfflineMessageToUser(String user) {
  90 + try {
  91 + Thread.sleep(2000);
  92 + LambdaQueryWrapper<StompMessage> queryWrapper = Wrappers.lambdaQuery();
  93 + queryWrapper.eq(StompMessage::getUser, user);
  94 + List<StompMessage> msgList = list(queryWrapper);
  95 + for (StompMessage msg : msgList) {
  96 + messaging.convertAndSendToUser(user, msg.getTopic(), msg.getMsg());
  97 + removeById(msg.getId());
  98 + }
  99 + } catch (Exception e) {
  100 + System.out.println("===========================================================【end】===\n\n\n");
  101 + System.out.println(" ======> e.getMessage() = " + e.getMessage());
94 102 }
95 103 }
96 104 }
... ...