CN111400246A - 异步导入文件方法、装置、计算机设备和存储介质 - Google Patents
异步导入文件方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111400246A CN111400246A CN202010221234.4A CN202010221234A CN111400246A CN 111400246 A CN111400246 A CN 111400246A CN 202010221234 A CN202010221234 A CN 202010221234A CN 111400246 A CN111400246 A CN 111400246A
- Authority
- CN
- China
- Prior art keywords
- import
- template
- preset
- file
- target content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 230000008676 import Effects 0.000 claims abstract description 445
- 238000004590 computer program Methods 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 13
- 238000012795 verification Methods 0.000 claims description 13
- 125000004122 cyclic group Chemical group 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种异步导入文件方法、装置、计算机设备和存储介质。本申请的方法包括:当获取到导入文件时,获取导入文件对应业务场景的预设导入模板;判断导入文件是否符合预设导入模板的要求;若符合要求,则根据预设导入模板,获取导入文件中预设导入模板的预设关键字所对应目标内容;对目标内容分批进行循环导入,得到导入结果;根据导入结果,更新导入记录的状态。采用本申请的方法能够提高异步导入文件的灵活性。
Description
技术领域
本申请涉及文件导入技术领域,特别是涉及一种异步导入文件方法、装置、计算机设备和存储介质。
背景技术
在平时的业务系统中,文件导入是一个很常见的业务需求。通常情况下,同步导入可以满足大部分的需求,但是对于数据量大、业务拼接复杂的系统来说,管理人员在等待导入结果的同时可能会出现等待超时的情况。因此,出现了异步导入技术,通过生成导入记录并加入队列等消息中间件,保证在系统空闲时进行导入操作,避免同步导入对系统性能的消耗,前端无需为了导入结果保持长时间等待状态,避免对其他业务产生影响。
传统技术中,异步导入文件时,导入文件的格式必须严格按照导入模板的格式来,即要求导入文件中每列内容的位置顺序固定,例如导入模板要求导入的列内容包含订单号、快递公司以及快递单号,则导入文件中的A列必须是订单号,B列必须是快递公司,C列必须是快递单号。
因此,现有的异步导入文件方法存在灵活性差的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高灵活性的异步导入文件方法、装置、计算机设备和存储介质。
一种异步导入文件方法,所述方法包括:
当获取到导入文件时,获取所述导入文件对应业务场景的预设导入模板;
判断所述导入文件是否符合所述预设导入模板的要求;
若符合要求,则根据所述预设导入模板,获取所述导入文件中所述预设导入模板的预设关键字所对应目标内容;
对所述目标内容分批进行循环导入,得到导入结果;
根据所述导入结果,更新导入记录的状态。
在其中一个实施例中,所述当获取到导入文件时,获取所述导入文件对应业务场景的预设导入模板,还包括:当获取到导入文件时,获取所述导入文件的业务场景类型;根据所述业务场景类型,确定所述导入文件对应的预设导入模板。
在其中一个实施例中,所述预设导入模板的生成方法,还包括:根据所述业务场景类型,确定模板属性;所述模板属性包括属性名和属性值;将所述属性名和所述属性值建立映射关系,得到模板列名集;根据所述模板列名集,得到所述导入文件对应的预设导入模板。
在其中一个实施例中,所述判断所述导入文件是否符合所述预设导入模板的要求,还包括:获取所述导入文件的列名信息;当查找到所述导入文件存在与所述预设导入模板的预设关键字对应的列名信息时,校验所述导入文件符合所述预设导入模板的要求。
在其中一个实施例中,所述对所述目标内容分批进行循环导入,得到导入结果,还包括:获取当前行的目标内容并导入,得到导入结果;获取所述目标内容的总行数和当前行数;当所述当前行数小于所述总行数时,将下一行更新为所述当前行,直至所述当前行数等于或大于所述总行数。
在其中一个实施例中,所述导入记录包括导入成功数和导入失败数;所述根据所述导入结果,更新导入记录的状态,包括:根据每行所述导入结果,累加所述导入失败数和所述导入成功数;当所述导入失败数和所述导入成功数之和等于所述总行数时,更新导入记录的状态。
在其中一个实施例中,还包括:当查找到所述导入文件不存在与所述预设导入模板的预设关键字对应的列名信息时,将校验失败的结果存储至所述导入记录。
一种异步导入文件装置,所述装置包括:
导入模板获取模块,用于当获取到导入文件时,获取所述导入文件对应业务场景的预设导入模板;
判断校验模块,用于判断所述导入文件是否符合所述预设导入模板的要求;
目标内容获取模块,用于若符合要求,则根据所述预设导入模板,获取所述导入文件中所述预设导入模板的预设关键字所对应目标内容;
循环导入模块,用于对所述目标内容分批进行循环导入,得到导入结果;
状态更新模块,用于根据所述导入结果,更新导入记录的状态。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当获取到导入文件时,获取所述导入文件对应业务场景的预设导入模板;
判断所述导入文件是否符合所述预设导入模板的要求;
若符合要求,则根据所述预设导入模板,获取所述导入文件中所述预设导入模板的预设关键字所对应目标内容;
对所述目标内容分批进行循环导入,得到导入结果;
根据所述导入结果,更新导入记录的状态。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当获取到导入文件时,获取所述导入文件对应业务场景的预设导入模板;
判断所述导入文件是否符合所述预设导入模板的要求;
若符合要求,则根据所述预设导入模板,获取所述导入文件中所述预设导入模板的预设关键字所对应目标内容;
对所述目标内容分批进行循环导入,得到导入结果;
根据所述导入结果,更新导入记录的状态。
上述异步导入文件方法、装置、计算机设备和存储介质,通过在获取到导入文件的同时获取对应的预设导入模板,在导入文件符合预设导入模板的要求时,根据预设导入模板,获取导入文件的内容与导入模板的属性相交的目标内容,并对目标内容的每行进行循环处理,更新导入记录的状态。在上述方法中,不同业务场景设置了不同的导入模板,且根据模板的预设关键字获取导入文件中对应目标内容,即通过导入模板的预设关键字匹配需要导入的目标内容,二者存在对应关系即可,无需导入文件的格式和导入模板的格式完全统一,满足不同业务场景的需求,实现了导入文件格式选择的多样性,提高了异步导入文件过程的灵活性。
附图说明
图1为一个实施例中异步导入文件方法的应用环境图;
图2为一个实施例中异步导入文件方法的流程示意图;
图3为一个实施例中循环导入步骤的流程示意图;
图4为另一个实施例中预设导入模板的生成方法的流程示意图;
图5为一个优选的实施例中异步导入文件方法的流程示意图;
图6为一个实施例中异步导入文件装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的异步导入文件方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。当服务器104获取到终端102上传的导入文件时,获取导入文件对应业务场景的预设导入模板;判断导入文件是否符合预设导入模板的要求;若符合要求,则根据预设导入模板,获取导入文件中预设导入模板的预设关键字所对应目标内容;对目标内容分批进行循环导入,得到导入结果;根据导入结果,更新导入记录的状态。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种异步导入文件方法,本实施例以该方法应用于服务器进行举例说明。本实施例中,该方法包括以下步骤S202至步骤S210:
步骤S202,当获取到导入文件时,获取导入文件对应业务场景的预设导入模板。
其中,导入文件是需要导入至服务器存储的文件,例如可以是表格或者文档的形式。预设导入模板是预先存储在服务器中的与导入文件的信息属性相关的临时文件模板。业务场景是指企业在实际生产工作中根据不同类型的业务需求产生的业务环境,其中,导入业务场景例如导入快递单号发货、导入派发现金券、导入销券等,不同标识类型的导入文件对应的业务场景不同。
具体地,当服务器获取到用户上传的导入文件时,可以根据导入文件的名称等标识信息确定导入文件对应的业务场景类型,从而根据确定的业务场景类型,从服务器的数据库中获取该导入文件对应业务场景的预设导入模板。
在一个实施例中,当获取到导入文件时,获取导入文件对应业务场景的预设导入模板,包括:当获取到导入文件时,获取导入文件的业务场景类型;根据业务场景类型,确定导入文件对应的预设导入模板。
具体地,当服务器获取到用户上传的导入文件时,同时获取用户提交的业务场景类型,服务器接收到该业务场景类型后,根据该业务场景类型,确定导入文件对应的预设导入模板。
本实施例中,通过直接获取用户提交的业务场景类型,不需要服务器另外根据导入文件的名称等标识信息来确定导入文件对应的业务场景类型,从而减少了服务器处理导入文件、确定业务场景类型的时间,提高了导入效率。
步骤S204,判断导入文件是否符合预设导入模板的要求。
具体地,服务器根据导入文件,判断导入文件中是否存在与预设导入模板的信息属性相关的内容,进一步地,若全部存在,则符合预设导入模板的要求,反之,若至少有一项不存在,则不符合预设导入模板的要求。
在一个实施例中,判断导入文件是否符合预设导入模板的要求,包括:获取导入文件的列名信息;当查找到导入文件存在与预设导入模板的预设关键字对应的列名信息时,校验导入文件符合预设导入模板的要求。
其中,预设关键字为不同业务场景的预设导入模板中标识特定列名属性信息的关键字,例如在导入快递单号的业务场景中,预设关键字为发货订单号或者订单号对应的英文标识(即orderNo)、快递单号或者快递单号对应的英文标识(即expressCode)以及快递公司名称或者快递公司名称对应的英文标识(即expressName)。
具体地,导入文件的类型为Excel表格,服务器获取导入文件(Excel表格)的列名信息,并根据上述表格中的列名信息,查找是否存在与预设导入模板的预设关键字对应的列名信息,当查找到存在与预设导入模板的预设关键字对应的列名信息时,校验导入文件(Excel表格)符合预设导入模板的要求。其中,导入文件(Excel表格)中的列名信息只包括预设导入模板的预设关键字对应的一项或者多项列名信息时,校验不通过,导入失败;当导入文件(Excel表格)中的列名信息包括预设导入模板的预设关键字对应的全部列名信息时,校验通过。例如,当业务场景为导入快递单号发货时,预设导入模板中至少包括订单号、快递单号和快递公司名称这三列关键字对应的列名信息,其中,列名信息可以是中文,也可以是英文,若导入文件中未全部包括这三列关键字对应的列名信息,则校验不通过,导入失败。
本实施例中,通过获取导入文件的列名信息并校验是否存在与预设导入模板的预设关键字对应的列名信息,从而实现导入文件的模板校验,提高导入文件过程的准确性和效率。
步骤S206,若符合要求,则根据预设导入模板,获取导入文件中预设导入模板的预设关键字所对应目标内容。
其中,目标内容为导入文件中与预设导入模板的预设关键字相关联的需要导入至服务器存储的内容,例如订单号、快递单号以及快递公司名称。
具体地,若导入文件符合预设导入模板的要求,服务器则根据预设导入模板,获取导入文件中预设导入模板的预设关键字所对应目标内容,即将预设导入模板与导入文件做交集处理,忽略差集后,得到交集内容作为目标内容。例如,获取导入文件中的订单号数据、快递单号数据以及快递公司名称信息,其中,预设导入模板的预设关键字为订单号数据、快递单号数据以及快递公司名称的中文或者英文标识。
步骤S208,对目标内容分批进行循环导入,得到导入结果。
其中,分批可以是采用每行或者预设行数、预设段数的频率。
具体地,服务器对目标内容按照每行或者预设行数、预设段数进行循环导入,得到每行或者预设行数、预设段数的目标内容的导入结果,即将上述目标内容导入至服务器存储,方便用户在导入完毕后查看。
在一个实施例中,如图3所示,对目标内容分批进行循环导入,得到导入结果,包括以下步骤S302至步骤S306:
步骤S302,获取当前行的目标内容并导入,得到导入结果。
其中,当前行的目标内容可以包括但不限于是当前行的订单号、快递单号或者快递公司名称。导入结果为根据导入文件的相关内容获取的相关数据信息,可以存储在服务器或者本地终端设备上,并展示在终端设备的浏览器页面上。具体地,服务器获取到当前行的目标内容后导入系统,即存储至服务器,得到当前行的目标内容导入结果。
步骤S304,获取目标内容的总行数和当前行数。
具体地,服务器获取目标内容的总行数信息和当前行数位置信息。
步骤S306,当当前行数小于总行数时,将下一行更新为当前行,直至当前行数等于或大于总行数。
具体地,当服务器读取到目标内容的当前行数小于该目标内容的总行数时,将下一行更新为当前行,继续获取当前行的目标内容并导入,得到当前行的目标内容导入结果,直至当前行数等于或大于总行数时,停止将下一行更新为当前行的操作,循环导入结束。
本实施例中,对目标内容的每行循环导入,并在目标内容的当前行数小于目标内容的总行数时,将下一行更新为当前行,直至当前行数等于或大于总行数时,循环导入结束。通过每行自动循环续行导入处理,可以达到精简代码、降低导入复杂度和提高维护迭代的便捷性的效果。
进一步地,可以结合业务处理器和文件处理器使用,通过文件处理器可以获取到导入文档的具体总行数、初始行数、当前行数、每行的列内容集等信息。当业务处理器绑定了循环处理器,循环处理器判断当前行数小于总行数时,则获取当前行内容集并提供给业务处理器调用,业务处理器处理完毕返回结果给循环处理器,循环处理器根据结果的成功与否累加成功数或失败数,并记录日志,然后再递增当前行数,继续重复处理,直至递增后的当前行数大于总行数才结束循环。
通过绑定循环处理器,业务处理器无需自行实现循环遍历、累加成功数或失败数和记录日志等操作,达到精简代码、降低复杂度、提高维护迭代的便捷性等效果。此外,续行处理会及时保存业务处理的结果和日志,降低一次性读取多行内容有可能引发的内存泄露风险。在导入文档列数和内容偏多的情况下,一次性读取多行内容会占用系统更多的内存,导致占用更多系统资源而影响系统性能。
步骤S208之后还包括步骤S210,根据导入结果,更新导入记录的状态。
其中,导入记录为记录异步导入文件过程的日志等文档,用户可以在导入任务结束后主动查看或者被动接收,可以包括导入成功行数、导入失败行数和失败原因、总行数以及处理时长等。
具体地,服务器根据目标内容分批循环导入的导入结果,更新导入记录的状态,从而导入任务成功。
上述异步导入文件方法中,通过在获取到导入文件的同时获取对应的预设导入模板,在导入文件符合预设导入模板的要求时,根据预设导入模板,获取导入文件的内容与导入模板的属性相交的目标内容,并对目标内容的每行进行循环处理,更新导入记录的状态。在上述方法中,不同业务场景设置了不同的导入模板,且根据模板的预设关键字获取导入文件中对应目标内容,即通过导入模板的预设关键字匹配需要导入的目标内容,二者存在对应关系即可,无需导入文件的格式和导入模板的格式完全统一,满足不同业务场景的需求,实现了导入文件格式选择的多样性,提高了异步导入文件过程的灵活性。
在一个实施例中,如图4所示,预设导入模板的生成方法,以该方法应用于服务器进行举例说明,包括以下步骤:
步骤S402,根据业务场景类型,确定模板属性。
其中,模板属性为导入模板的属性特征,包括属性名和属性值,属性名为不同业务场景的导入模板统一定义的属性标识,属性值为用户上传的导入文件的属性标识,例如,当属性名是orderNo时,属性值可以为订单号。
具体地,服务器在接收到业务场景类型后,根据业务场景类型,匹配对应的业务处理器,该业务处理器关联了模板属性,从而确定导入模板的属性。
步骤S404,将属性名和属性值建立映射关系,得到模板列名集。
其中,模板列名集为包括各个业务场景的属性名和属性值的映射关系汇总的文档或者表格。
具体地,服务器将属性名和属性值建立映射关系,例如,将“订单号”定义为属性名“orderNo”的值,将“快递单号”定义为属性名“expressCode”的值,将“快递公司名称”定义为属性名“expressName”的值,从而建立属性名和属性值的映射关系,得到模板列名集。
步骤S406,根据模板列名集,得到导入文件对应的预设导入模板。
具体地,服务器根据模板列名集,将属性名和属性值的映射关系写入至临时文档并存储,输出临时文档的文件流至终端设备上的浏览器,即浏览器自动下载,实现导出预设导入模板。
本实施例中,通过模板属性映射为列名,实现动态生成预设导入模板。由于列名校验也是使用模板属性,因此业务需求变更(增加/删除)时只需改动模板属性即可,无需分开实现,也无需额外再维护预设导入模板文档,提高了迭代的效率,实现了代码复用。
在一个实施例中,导入记录包括导入成功数和导入失败数;根据导入结果,更新导入记录的状态,包括:根据每行导入结果,累加导入失败数和导入成功数;当导入失败数和导入成功数之和等于总行数时,更新导入记录的状态。
本实施例中,通过将导入成功数和导入失败数的总和与总行数进行比较,根据比较结果来更新导入记录的状态,进而判断导入任务结束与否,达到多维度更新导入记录的状态的效果。
在一个实施例中,当查找到导入文件不存在与预设导入模板的预设关键字对应的列名信息时,将校验失败的结果存储至导入记录。
本实施例中,当导入文件校验不通过时,将校验失败的结果存储至导入记录,方便用户根据导入记录查看导入失败原因。
在一个实施例中,如图5所示,提供了一种优选的异步导入文件方法。在本实施例中,用户导入文档时,系统先保存导入记录任务(包含有业务场景、远程文件地址、状态等信息),然后加入队列,再返回结果提示成功添加导入任务即已完结操作。此过程剥离了导入任务的具体处理,耗时短,用户无需停留在当前页面即可进行其他操作,大大提高了工作效率。同时,通过导入记录可以随时查看导入的处理进度、成功数、失败数、失败原因等信息,解决了用户的电脑发生断电、断网而无法知晓任务的执行情况的问题。
利用队列保存了任务信息,结合常驻进程监听队列消息体,解耦任务处理过程,同时也能够及时执行待处理的任务。具体是通过常驻进程消费消息体,查找导入记录内容,然后根据定义的业务类型查找对应的业务处理器执行循环逻辑处理,记录循环体内的处理结果,循环结束后汇总成功数和失败数等信息并更新导入记录。
本实施例中,封装了文档列名适配器,开发人员只需要定义模板的列名即可,适配器会自动匹配导入文档中不同列对应列名的内容。有益效果是可以适应灵活的文档内容,无需强制列的内容所在的位置,只需满足模板要求填写对应列的内容。不同用户处理文档习惯都有可能不一样,如导出待处理订单的文档,里面包含很多订单信息和客人收货地址信息,导入快递单信息只需要满足导入订单号、快递公司、快递单号即可,对此三列所在的ABCDEFH等列号不作要求。适配器会根据预定义的模板列名匹配列内容从而定位到导入文档各个列所在位置,把位置与列内容组成映射关系。同时通过映射关系与模板列名比较,可以验证导入文档的格式是否符合要求。预定义了列名,可以根据导出处理器一键生成导入模板,让程序控制模板,更贴近业务逻辑,无需额外生成模板上传。
本实施例中,封装了文件处理器接口。根据文件的后缀格式,开发人员可指定文件处理器或使用自动匹配的处理器,通过处理器的统一接口获取文档的总行数、总列数、行内容、列内容等。处理器是由excel插件(PHPExcel、PhpSpreadsheet或CSV)封装而成,兼容上面三个插件接入,切换插件只需更改插件名称就可以实现快速切换,无需更改其他业务代码。
本实施例中,封装了循环处理器。因为大部分导入业务都是遍历文档内容然后对每行内容只需相同的逻辑处理,所以循环遍历操作是通用的,不同业务只需关注循环体内每行内容的处理逻辑,发回对应的处理结果即可。通过循环处理器回调行内容的处理逻辑,可以实现无需判断文档的总行数,当前执行到第几行,处理器自动遍历完成。针对个别复杂导入场景,开发人员可以通过文件处理的的接口获取总行数自行遍历文档处理,只需实现回调事件即可。
本实施例中,通过统一化了上传文件至CDN、文档格式验证、保存导入记录、入队消息体、循环处理器、保存记录日志和导入记录状态等通用功能,开发人员只需实现不同业务场景的差异化逻辑处理,无需维护通用化代码,可以快速迭代业务需求。经过标准化接口处理后,针对已存在的功能也能快速实现批量导入处理,如更新订单的快递单号,开发人员只需要在业务处理器中接入原有的更新订单的快递单号逻辑即可,两者之间的差异只是传递参数的方式不一样,就是通过页面填写在表单上面更新和通过文档填写在excel更新的差异,两者逻辑都是更新快递单号,这个逻辑代码就实现了复用,减轻了开发工作量,提高了开发效率。
采用本实施例的方法,提高了工作效率。当用户操作导入文件提交导入后无需等待后台处理结果即可刷新页面或进行其他操作。导入文件的模板格式不严格要求列的顺序,满足不同用户处理文档的习惯,如模板要求导入的列内容含订单号、快递公司、快递单号,导入的文档可以灵活填写在不同的列中。用户可以查看导入结果,成功行数和失败行数,处理时长等,遇到导入失败的情况,用户可以根据导入记录查看失败原因。实现了代码复用,提高开发效率。通过封装统一接口方法,针对不同的导入业务场景,开发人员只需要简单的定义标题、表头和具体的每行处理逻辑即可实现整个异步导入流程。并且封装了通用适配器,支持xls,xlsx,csv文档格式。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种异步导入文件装置600,包括:导入模板获取模块610、判断校验模块620、目标内容获取模块630、循环导入模块640和状态更新模块650,其中:
导入模板获取模块610,用于当获取到导入文件时,获取导入文件对应业务场景的预设导入模板。
判断校验模块620,用于判断导入文件是否符合预设导入模板的要求。
目标内容获取模块630,用于若符合要求,则根据预设导入模板,获取导入文件中预设导入模板的预设关键字所对应目标内容。
循环导入模块640,用于对目标内容分批进行循环导入,得到导入结果。
状态更新模块650,用于根据导入结果,更新导入记录的状态。
在一个实施例中,导入模板获取模块610还用于:当获取到导入文件时,获取导入文件的业务场景类型;根据业务场景类型,确定导入文件对应的预设导入模板。
在一个实施例中,导入模板获取模块610还用于:根据业务场景类型,确定模板属性;模板属性包括属性名和属性值;将属性名和属性值建立映射关系,得到模板列名集;根据模板列名集,得到导入文件对应的预设导入模板。
在一个实施例中,判断校验模块620还用于:获取导入文件的列名信息;当查找到导入文件存在与预设导入模板的预设关键字对应的列名信息时,校验导入文件符合预设导入模板的要求。
在一个实施例中,循环导入模块640还用于获取当前行的目标内容并导入,得到导入结果;获取目标内容的总行数和当前行数;当当前行数小于总行数时,将下一行更新为当前行,直至当前行数等于或大于总行数。
在一个实施例中,状态更新模块650还用于根据每行导入结果,累加导入失败数和导入成功数;当导入失败数和导入成功数之和等于总行数时,更新导入记录的状态。
在一个实施例中,判断校验模块620还用于:当查找到导入文件不存在与预设导入模板的预设关键字对应的列名信息时,将校验失败的结果存储至导入记录。
关于异步导入文件装置的具体限定可以参见上文中对于异步导入文件方法的限定,在此不再赘述。上述异步导入文件装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储预设导入模板和导入结果数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种异步导入文件方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
当获取到导入文件时,获取导入文件对应业务场景的预设导入模板;
判断导入文件是否符合预设导入模板的要求;
若符合要求,则根据预设导入模板,获取导入文件中预设导入模板的预设关键字所对应目标内容;
对目标内容分批进行循环导入,得到导入结果;
根据导入结果,更新导入记录的状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当获取到导入文件时,获取导入文件的业务场景类型;根据业务场景类型,确定导入文件对应的预设导入模板。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据业务场景类型,确定模板属性;模板属性包括属性名和属性值;将属性名和属性值建立映射关系,得到模板列名集;根据模板列名集,得到导入文件对应的预设导入模板。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取导入文件的列名信息;当查找到导入文件存在与预设导入模板的预设关键字对应的列名信息时,校验导入文件符合预设导入模板的要求。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取当前行的目标内容并导入,得到导入结果;获取目标内容的总行数和当前行数;当当前行数小于总行数时,将下一行更新为当前行,直至当前行数等于或大于总行数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据每行导入结果,累加导入失败数和导入成功数;当导入失败数和导入成功数之和等于总行数时,更新导入记录的状态。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当查找到导入文件不存在与预设导入模板的预设关键字对应的列名信息时,将校验失败的结果存储至导入记录。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
当获取到导入文件时,获取导入文件对应业务场景的预设导入模板;
判断导入文件是否符合预设导入模板的要求;
若符合要求,则根据预设导入模板,获取导入文件中预设导入模板的预设关键字所对应目标内容;
对目标内容分批进行循环导入,得到导入结果;
根据导入结果,更新导入记录的状态。在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当获取到导入文件时,获取导入文件的业务场景类型;根据业务场景类型,确定导入文件对应的预设导入模板。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据业务场景类型,确定模板属性;模板属性包括属性名和属性值;将属性名和属性值建立映射关系,得到模板列名集;根据模板列名集,得到导入文件对应的预设导入模板。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取导入文件的列名信息;当查找到导入文件存在与预设导入模板的预设关键字对应的列名信息时,校验导入文件符合预设导入模板的要求。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取当前行的目标内容并导入,得到导入结果;获取目标内容的总行数和当前行数;当当前行数小于总行数时,将下一行更新为当前行,直至当前行数等于或大于总行数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据每行导入结果,累加导入失败数和导入成功数;当导入失败数和导入成功数之和等于总行数时,更新导入记录的状态。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当查找到导入文件不存在与预设导入模板的预设关键字对应的列名信息时,将校验失败的结果存储至导入记录。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种异步导入文件方法,其特征在于,所述方法包括:
当获取到导入文件时,获取所述导入文件对应业务场景的预设导入模板;
判断所述导入文件是否符合所述预设导入模板的要求;
若符合要求,则根据所述预设导入模板,获取所述导入文件中所述预设导入模板的预设关键字所对应目标内容;
对所述目标内容分批进行循环导入,得到导入结果;
根据所述导入结果,更新导入记录的状态。
2.根据权利要求1所述的方法,其特征在于,所述当获取到导入文件时,获取所述导入文件对应业务场景的预设导入模板,包括:
当获取到导入文件时,获取所述导入文件的业务场景类型;
根据所述业务场景类型,确定所述导入文件对应的预设导入模板。
3.根据权利要求2所述的方法,其特征在于,所述预设导入模板的生成方法,包括:
根据所述业务场景类型,确定模板属性;所述模板属性包括属性名和属性值;
将所述属性名和所述属性值建立映射关系,得到模板列名集;
根据所述模板列名集,得到所述导入文件对应的预设导入模板。
4.根据权利要求1所述的方法,其特征在于,所述判断所述导入文件是否符合所述预设导入模板的要求,包括:
获取所述导入文件的列名信息;
当查找到所述导入文件存在与所述预设导入模板的预设关键字对应的列名信息时,校验所述导入文件符合所述预设导入模板的要求。
5.根据权利要求1所述的方法,其特征在于,所述对所述目标内容分批进行循环导入,得到导入结果,包括:
获取当前行的目标内容并导入,得到导入结果;
获取所述目标内容的总行数和当前行数;
当所述当前行数小于所述总行数时,将下一行更新为所述当前行,直至所述当前行数等于或大于所述总行数。
6.根据权利要求5所述的方法,其特征在于,所述导入记录包括导入成功数和导入失败数;所述根据所述导入结果,更新导入记录的状态,包括:
根据每行所述导入结果,累加所述导入失败数和所述导入成功数;
当所述导入失败数和所述导入成功数之和等于所述总行数时,更新导入记录的状态。
7.根据权利要求4所述的方法,其特征在于,还包括:
当查找到所述导入文件不存在与所述预设导入模板的预设关键字对应的列名信息时,将校验失败的结果存储至所述导入记录。
8.一种异步导入文件装置,其特征在于,所述装置包括:
导入模板获取模块,用于当获取到导入文件时,获取所述导入文件对应业务场景的预设导入模板;
判断校验模块,用于判断所述导入文件是否符合所述预设导入模板的要求;
目标内容获取模块,用于若符合要求,则根据所述预设导入模板,获取所述导入文件中所述预设导入模板的预设关键字所对应目标内容;
循环导入模块,用于对所述目标内容分批进行循环导入,得到导入结果;
状态更新模块,用于根据所述导入结果,更新导入记录的状态。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010221234.4A CN111400246B (zh) | 2020-03-26 | 2020-03-26 | 异步导入文件方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010221234.4A CN111400246B (zh) | 2020-03-26 | 2020-03-26 | 异步导入文件方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400246A true CN111400246A (zh) | 2020-07-10 |
CN111400246B CN111400246B (zh) | 2023-12-19 |
Family
ID=71431229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010221234.4A Active CN111400246B (zh) | 2020-03-26 | 2020-03-26 | 异步导入文件方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400246B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347745A (zh) * | 2020-10-22 | 2021-02-09 | 杭州安恒信息技术股份有限公司 | 文件生成进度的获取方法、装置、电子装置和存储介质 |
CN112862449A (zh) * | 2021-03-02 | 2021-05-28 | 岭东核电有限公司 | 结构化工单生成方法、装置、计算机设备和存储介质 |
CN113434469A (zh) * | 2021-06-23 | 2021-09-24 | 北京理工大学 | 一种基于线程池的异步导入文件方法 |
WO2023246008A1 (zh) * | 2022-06-24 | 2023-12-28 | 北京京东振世信息技术有限公司 | 数据处理方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1065700A (ja) * | 1996-08-23 | 1998-03-06 | Ricoh Co Ltd | 非同期転送モードを用いたデータ伝送方法 |
KR20140011495A (ko) * | 2012-06-07 | 2014-01-29 | 주식회사 케이티 | 변환 장치, 변환 방법 및 사용자 단말 |
CN105489240A (zh) * | 2015-11-30 | 2016-04-13 | 中国科学院计算技术研究所 | 一种用于DRAM或eDRAM刷新的装置及其方法 |
GB2541040A (en) * | 2015-08-05 | 2017-02-08 | Intralinks Inc | Systems and methods of secure data exchange |
CN109657225A (zh) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | 数据整合方法、装置、终端及存储介质 |
CN110619115A (zh) * | 2019-08-30 | 2019-12-27 | 深圳壹账通智能科技有限公司 | 一种模板创建方法、装置、电子设备及存储介质 |
-
2020
- 2020-03-26 CN CN202010221234.4A patent/CN111400246B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1065700A (ja) * | 1996-08-23 | 1998-03-06 | Ricoh Co Ltd | 非同期転送モードを用いたデータ伝送方法 |
KR20140011495A (ko) * | 2012-06-07 | 2014-01-29 | 주식회사 케이티 | 변환 장치, 변환 방법 및 사용자 단말 |
GB2541040A (en) * | 2015-08-05 | 2017-02-08 | Intralinks Inc | Systems and methods of secure data exchange |
CN105489240A (zh) * | 2015-11-30 | 2016-04-13 | 中国科学院计算技术研究所 | 一种用于DRAM或eDRAM刷新的装置及其方法 |
CN109657225A (zh) * | 2018-09-27 | 2019-04-19 | 深圳壹账通智能科技有限公司 | 数据整合方法、装置、终端及存储介质 |
CN110619115A (zh) * | 2019-08-30 | 2019-12-27 | 深圳壹账通智能科技有限公司 | 一种模板创建方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
陈严纯;梁立;: "大数据导入数据库的方法与实现", 电脑编程技巧与维护, no. 18 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112347745A (zh) * | 2020-10-22 | 2021-02-09 | 杭州安恒信息技术股份有限公司 | 文件生成进度的获取方法、装置、电子装置和存储介质 |
CN112347745B (zh) * | 2020-10-22 | 2024-03-19 | 杭州安恒信息技术股份有限公司 | 文件生成进度的获取方法、装置、电子装置和存储介质 |
CN112862449A (zh) * | 2021-03-02 | 2021-05-28 | 岭东核电有限公司 | 结构化工单生成方法、装置、计算机设备和存储介质 |
CN113434469A (zh) * | 2021-06-23 | 2021-09-24 | 北京理工大学 | 一种基于线程池的异步导入文件方法 |
WO2023246008A1 (zh) * | 2022-06-24 | 2023-12-28 | 北京京东振世信息技术有限公司 | 数据处理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111400246B (zh) | 2023-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111400246B (zh) | 异步导入文件方法、装置、计算机设备和存储介质 | |
CN109474578B (zh) | 报文消息校验方法、装置、计算机设备和存储介质 | |
CN110489421B (zh) | 数据存储方法、装置、计算机可读存储介质和计算机设备 | |
CN111858727B (zh) | 一种基于模板配置的多数据源数据导出系统及方法 | |
CN112445596B (zh) | 基于多线程的数据导入方法、系统及存储介质 | |
CN112615759B (zh) | 全链路压测组件、全链路压测方法及装置 | |
CN111708586B (zh) | 应用启动配置项加载方法、装置、计算机设备和存储介质 | |
CN109144487B (zh) | 进件业务开发方法、装置、计算机设备和存储介质 | |
CN112685391A (zh) | 一种服务数据迁移方法、装置、计算机设备和存储介质 | |
CN111385294B (zh) | 数据处理方法、系统、计算机设备和存储介质 | |
CN112783866B (zh) | 数据读取方法、装置、计算机设备和存储介质 | |
CN114003432A (zh) | 参数校验方法、装置、计算机设备和存储介质 | |
CN112687375A (zh) | Dicom文件传输方法、系统、装置、服务器和存储介质 | |
CN113626001B (zh) | 一种基于脚本的api动态编排方法及装置 | |
CN113419957B (zh) | 基于规则的大数据离线批处理性能容量扫描方法及装置 | |
CN115237935A (zh) | 数据查询方法、装置、计算机设备和计算机可读存储介质 | |
CN114064100A (zh) | 配置信息处理方法、系统和装置 | |
CN112149951A (zh) | 风险控制方法、装置、计算机设备和存储介质 | |
CN111597240A (zh) | 数据导出方法、装置、计算机设备和存储介质 | |
CN111221738A (zh) | 数据执行文件生成方法、装置、计算机设备以及存储介质 | |
CN114896211B (zh) | 一种基于云渲染应用的共享资产文件方法及系统 | |
CN112433743B (zh) | 一种文件更新方法、装置、电子设备及存储介质 | |
US20240354021A1 (en) | Data processing method and system, device and medium | |
CN116225551A (zh) | 配置信息确定方法、装置、设备及存储介质 | |
CN114398068A (zh) | 渠道接入的方法、系统、电子装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |