首页 > 其他分享 >批量处理数据

批量处理数据

时间:2024-09-27 09:50:54浏览次数:8  
标签:index Task 批量 处理 item tasks var 数据 datas

        private readonly SemaphoreSlim _throttler = new SemaphoreSlim(16);//允许指定同时可以访问资源的线程数。
        public async Task BatchTaskTest<T>(List<T> lst, int batchSize = 100)
        {
            var batches = lst.Select((item, index) => new { item, index })
            .GroupBy(x => x.index / batchSize)
            .Select(x => x.Select(f => f.item).ToList())
            .ToArray();//经典

            foreach (var datas in batches)
            {
                var tasks = new Task[datas.Count];
                try
                {
                    for (int i = 0; i < datas.Count; i++)
                    {
                        tasks[i] = PrivateTask(datas[i]);
                    }
                    await Task.WhenAll(tasks);
                }
                catch (Exception e)
                {
                    await Loger.WriteLog("XXXXX", e);
                }
            }
        }

        private async Task PrivateTask<T>(T item)
        {
            await _throttler.WaitAsync();
            try
            {
                Thread.Sleep(2000);//待执行任务
            }
            finally
            {
                _throttler.Release();
            }
        }

 

标签:index,Task,批量,处理,item,tasks,var,数据,datas
From: https://www.cnblogs.com/a976986319/p/18435079

相关文章

  • Mybatis Plus多源数据库和自动更新updateTime问题
    多源数据库配置1、依赖配置implementation'com.baomidou:mybatis-plus-boot-starter:3.5.2'implementation'com.baomidou:dynamic-datasource-spring-boot-starter:3.5.2'2、配置文件spring:datasource:dynamic:primary:master#设置默认的数据......
  • 从零开始学机器学习——准备和可视化数据
    首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns数据准备-清洗在进行机器学习的第一步——准备数据,为了方便起见,我已经提前下载好了所需的文件。https://files.cnblogs.com/files/guoxiaoyu/US-pumpkins.zip?t=1726642760&download=true在大多数情况下,我......
  • 华为GaussDB数据库之Yukon安装与使用
    一、Yukon简介Yukon(禹贡),基于openGauss、PostgreSQL、GaussDB数据库扩展地理空间数据的存储和管理能力,提供专业的GIS(GeographicInformationSystem)功能,赋能传统关系型数据库。Yukon支持二三维一体化的空间数据存储能力:官网地址https://yukon.supermap.io/,此次我们基于华为G......
  • 利用反射扫描枚举生成数据字典数据
    在开发过程中经常遇到既需要维护枚举来完成各种条件判断,又需要维护数据字典供前端使用,维护数据字典的另一个用处是可以修改数据字典的label而无需调整代码,但是这种两边维护的方式非常浪费人力资源,甚至有时部署程序忘了维护数据字典导致线上环境出现无法正常显示等问题。为解......
  • nacos配置持久化到mysql数据库
    以版本2.4.1为例,要实现Nacos2.4.1的配置持久化,你需要按照以下步骤操作:准备数据库:首先,确保你已经安装并配置好了MySQL数据库,并且版本符合Nacos的要求(MySQL5.6及以上)。创建数据库:在MySQL中创建一个新的数据库,例如命名为nacos。执行SQL脚本:从Nacos的conf......
  • Robot Framework 自动化测试部署常见问题及处理方法(三)
    书接上文8.关于IE浏览器IE浏览器必须是原生版,即Windows系统原版,非手动升级后的版本9.用例执行过程中,遇到元素定位不到的情况原因:⑴xpath动态变化⑵有frame/iframe⑶没有设置等待,元素未加载完成解决方法:⑴若xpath动态变化:重写xpath⑵若有frame/iframe:参照第二节第10点【......
  • log型数据结构优化DP解题报告(uoj)
    交作业用T220417最长公共上升子序列不难看出状态同最长公共子序列,但由于上升条件限制,加一个限制:\(f_{i,j}\)表示\(a_{1...i}\)匹配\(b_{1...j}\)且\(a_i\)必须做结尾的最长公共上升子序列长度转移方程为\(f_{i,j}=f_{i,j-1}\)(if\(a_i\neqb_j\))\(f_{i,j}=\max_{k......
  • 数据结构之——队列
    一、队列概述        队列是一种操作受限的线性表,其限制条件为允许在表的一端进行插入,而在表的另一端进行删除。插入的一端叫做队尾,删除的一端叫做队头。向队列中插入新元素的行为称为进队,从队列中删除元素的行为称为出队。例如军训的时候,都排成一列,有头有尾。假设你......
  • 读数据湖仓01让数据可信
    1. 让数据可信1.1. 每个终端用户(EndUser)都有一个共同的需求:访问想要的数据1.2. 真的能够相信我正在访问的这些数据吗?1.2.1. 终端用户很快就会发现,访问数据和相信正在访问的数据是两回事1.2.2. 访问数据和相信数据不是同一回事1.2.3. 如果数据不可信,可能会导......
  • 淘宝客APP的数据同步与一致性保障
    淘宝客APP的数据同步与一致性保障大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!今天我们来讨论淘宝客APP中的数据同步与一致性保障问题。随着系统复杂度的提升,特别是在分布式架构的情况下,如何确保数据同步和一致性成为了一个重要的技术挑战。......