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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 从零开始的Android:常见的UI设计模式「建议收藏」

    从零开始的Android:常见的UI设计模式「建议收藏」尽管Android允许您创建几乎任何可能需要的自定义视图或用户界面,但事实证明,在正确的情况下,有一些用户界面模式可以很好地适用于用户。在本教程中,您将学习其中的一些模式,以及它们如何通过在使用应用程序时创造出色的体验来帮助用户。1.主画面用户在打开应用程序时看到的第一个屏幕通常是最重要的。从这里开始,您的用户应该能够执行快速动作并继续前进,或者进一步深入到您的应用中以完善他们…

    2022年6月21日
    26
  • for遍历list Python_不属于python循环语句的是

    for遍历list Python_不属于python循环语句的是for循环是最常用的循环语句,在各种高级编程语言中都会被频繁使用,在python中也不例外,除了常规的for循环或者嵌套的for循环语法以外,python还有一种精巧的list内的for循环语句的语法,如果能熟练掌握这种语法对提高编程的效率有很大的帮助,今天我给大家我给大家分享一些我收集的关于list内使用for循环的小技巧,希望对大家有所帮助:1.简单替换for循环它的主要语法结构如下:my_list=[表达式for循环项in循环体(if条件)]这里表达式可以为循环项,

    2022年8月12日
    7
  • docker查看redis版本[通俗易懂]

    docker查看redis版本[通俗易懂]dockerexec-itredisredis-server-v

    2022年6月2日
    57
  • 有关二维码防封的问题的解决办法

    有关二维码防封的问题的解决办法

    2021年6月30日
    199
  • 分子模拟软件amber_Gromacs联用GAFF力场处理水溶剂下小分子动力学

    分子模拟软件amber_Gromacs联用GAFF力场处理水溶剂下小分子动力学与GROMACS偏重生物大分子模拟的力场不同,AMBER支持很多方便处理有机小分子的力场(详见http://sobereva.com/115),如GAFF力场,简单而又有不错的精度,适合处理有机小分子;这里将介绍用Gaussian计算RESP电荷,交由Amber生成GAFF力场下的拓扑文件,最后用GROMACS模拟的过程。软件版本:AmberTools18,Gromacs2019-beta-1…

    2022年5月25日
    100
  • 1、排序二叉树「建议收藏」

    1、排序二叉树「建议收藏」2.建立并中序遍历一个排序二叉树排序二叉树是指左子树的所有节点的值均小于它根节点的值,右子树的所有节点的值均大于它根节点的值,如下图是一棵排序二叉树输入:输入有一行,表示若干个要排序的数,输入0时停止输出二叉树的凹入表示和二叉树的中序遍历序列sample:input:567834891235677722570output:     12 …

    2022年7月25日
    7

发表回复

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

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