• 极光推送的的栗子


     // 比赛结束的推送消息
        @Override
        public void sendMessageForGameOver(String gameId) {
    
            ExecutorService fixedThreadPool = Executors.newFixedThreadPool(100);  //设置此线程等待10分钟
            fixedThreadPool.execute(new MessageForGameOver(gameId));
        }
    
        class MessageForGameOver implements Runnable {
            private String  gameId;
            public MessageForGameOver(String  gameId) {
                this.gameId = gameId;
            }
            public void startEvent(){
                try{
                    //获取主队的所有球员的Id
                    Game gameOverDto=gameService.getGameRaw(gameId);
                    String homeTeamId = gameOverDto.getHomeTeamId();
                    List<String> homeTeamUserIds = getUserIdsByTeamId(homeTeamId);
                    //获取客队的所有球员的Id
                    String guestTeamId = gameOverDto.getGuestTeamId();
                    List<String> guestTeamUserIds = getUserIdsByTeamId(guestTeamId);
    
                    PushMessageDto homeTeamDto = genPushMessageDtoService.genPushMessageDtoForGameOver(gameOverDto, homeTeamUserIds, gameOverDto.getGuestTeamId());
                    PushMessageDto guestTeamDto = genPushMessageDtoService.genPushMessageDtoForGameOver(gameOverDto, guestTeamUserIds, gameOverDto.getHomeTeamId());
                    PushMessage pushMessage = new PushMessage();
                    pushMessage.setBizid(gameId);
                    pushMessage.setBiztype(2);
                    pushMessage.setProcessStatus(2);
                    pushMessage.setProcessCount(0);
                    pushMessage.setCreatedTime(new Date());
                    pushMessage.setUpdatedTime(new Date());
                    PushMessage message = pushMessageService.insertSelective(pushMessage);
    
                    saveMessageDetailService.saveMessageDetailForGameOver(gameOverDto);
                    sendMessageToJpush(homeTeamDto, guestTeamDto, message);
                }catch (Exception e){
                    log.error("消息发送出错"+e.getMessage());
                }
            }
    
            @Override
            public void run() {
                try {
                    Thread.sleep(10*60*1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                startEvent();
            }
        }
    

      

  • 相关阅读:
    第二阶段冲刺总结01
    第十四周学习进度
    第十三周进度
    意见改进
    BZOJ 2109 航空管制(拓扑排序+贪心)
    BZOJ 2131 圈地计划(最小割+黑白染色)
    BZOJ 2118 墨墨的等式(最短路)
    BZOJ 2157 旅行(树链剖分码农题)
    BZOJ 2141 排队(树状数组套主席树)
    BZOJ 2186 沙拉公主的困惑(预处理逆元+欧拉函数)
  • 原文地址:https://www.cnblogs.com/murong/p/5920203.html
Copyright © 2020-2023  润新知