zoukankan      html  css  js  c++  java
  • 极光推送的的栗子

     // 比赛结束的推送消息
        @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();
            }
        }
    

      

  • 相关阅读:
    PHP 5.5.0 Alpha5 发布
    Ubuntu Touch 只是另一个 Android 皮肤?
    MariaDB 10 已经为动态列提供文档说明
    Percona Toolkit 2.1.9 发布,MySQL 管理工具
    Oracle Linux 6.4 发布
    Ruby 2.0.0 首个稳定版本(p0)发布
    Apache Pig 0.11.0 发布,大规模数据分析
    Node.js 0.8.21 稳定版发布
    红薯 MySQL 5.5 和 5.6 默认参数值的差异
    Django 1.5 正式版发布,支持 Python 3
  • 原文地址:https://www.cnblogs.com/murong/p/5920203.html
Copyright © 2011-2022 走看看