futureTask使用[通俗易懂]

futureTask使用[通俗易懂]List<FutureTask>taskList=newArrayList<>();if(leaderList!=null&&!leaderList.isEmpty()){leaderList.forEach(userId->{…

大家好,又见面了,我是你们的朋友全栈君。

   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);
            }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147941.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 六轴机器人轨迹规划之五段位置s曲线插补

    六轴机器人轨迹规划之五段位置s曲线插补1 轨迹规划的定义轨迹规划 trajectorypl 是运动规划 motionplanni 研究的主要内容 运动规划指的是运动插补 在起始点和终止点之间插入中间点序列 实现沿着轨迹的平稳运动 运动控制包含路径规划 pathplanning 和轨迹规划 路径规划是规划位置 在起终点之间经过的路径点 轨迹规划是规划时间 将路径点与时间相对应 对于我们的六轴机器人而言轨

    2025年6月27日
    4
  • murmurhash算法_hash function

    murmurhash算法_hash functionunsignedlonglongMurmurHash64B(constvoid*key,intlen,unsignedintseed){ constunsignedintm=0x5bd1e995; constintr=24; unsignedinth1=seed^len; unsignedinth2=0; con

    2022年10月9日
    4
  • 各大型邮箱smtp服务器及端口收集

    各大型邮箱smtp服务器及端口收集

    2021年9月21日
    106
  • vue.js中created()与activated()的个人使用理解

    vue.js中created()与activated()的个人使用理解created():在创建vue对象时,当html渲染之前就触发;但是注意,全局vue.js不强制刷新或者重启时只创建一次,也就是说,created()只会触发一次;activated():在vue对象存活的情况下,进入当前存在activated()函数的页面时,一进入页面就触发;可用于初始化页面数据等…

    2025年7月23日
    4
  • layer 弹出层全屏「建议收藏」

    layer 弹出层全屏「建议收藏」letindex=layer.open({title:”,type:1,shade:false,skin:’layui-layer-lan’,//加上边框content:$(‘#zgjzWrapper’),success:function(){},cancel:function(){.

    2022年7月13日
    20
  • mybatis+springboot+flowable6.4.0遇到的问题[通俗易懂]

    mybatis+springboot+flowable6.4.0遇到的问题[通俗易懂]整合mybatis+springboot+flowable6.4.0遇到的坑前面一大堆都是记录问题过程,爱看不看。解决办法再最后。问题:org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound)解决办法:就是兼顾flowable和mybatis的配置.完前面一大堆都是记录问题过程,爱看不看。解决…

    2022年5月11日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号