futureTask使用

   List<FutureTask> taskList = new ArrayList<>();
            if (leaderList != null && !leaderList.isEmpty()) {
                leaderList.forEach(userId -> {
                    FutureTask future = new FutureTask(() -> {
                        UserInfoVO userInfoVO = vipCenterService.getUserInfoById(userId);
                        if (userInfoVO != null) {
                            req.setUserId(userId);
                            AprilLeaderPrizeDto aprilLeaderPrizeDto = iAprilLeaderPrizeService.querySometimeleaderPricze(req);
                            String phoneNuber = userInfoVO.getPhoneNumber();
                            count.addAndGet(1);
                            String message = mrytConfig.getConfig("");
                            if (StringUtil.isNotBlank(message)) {
                                message = String.format(message, month, month, day, aprilLeaderPrizeDto.getLastTotalMoney(), aprilLeaderPrizeDto.getLastAllvipNumber());
                                activityUtil.sendSms(phoneNuber,message, MessageSignEnum.sign_sxws);
                            }
                            logger.info("SendSaleMessageToLeaderJob---2---phoneNuber:{},message:{},count:{}", phoneNuber, message, count);
                        }
                        return null;
                    });
                    service.submit(future);
                    taskList.add(future);
                });
                for (FutureTask task : taskList) {
                    try {
                        task.get();
                    } catch (Exception e) {
                        logger.error("SendSaleMessageToLeaderJob並行執行報錯-{}", e);
                    }
                }
                logger.info("SendSaleMessageToLeaderJob執行結束cost:{}ms,count:{}", System.currentTimeMillis() - start, count);
            }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章