一种基于线程池的异步导入文件方法技术

技术编号:30161307 阅读:19 留言:0更新日期:2021-09-25 15:15
本公开的基于线程池的异步导入文件方法,获取导入文件所对应业务场景的文件模板;当判断导入文件符合导入标准时,校验所述导入文件;保存导入文件的校验结果到数据库的临时表中,提交导入文件处理任务至线程池中;线程处理导入文件任务,并将所述校验结果从临时表中存储至数据库的正式表中;查看导入文件列表,以文件形式下载导入文件的错误数据列表。能够并发完成异步导入文件的操作,降低资源消耗,灵活操作文档模板、提高响应速度。提高响应速度。提高响应速度。

【技术实现步骤摘要】
一种基于线程池的异步导入文件方法


[0001]本专利技术属于文件导入
,具体涉及一种基于线程池的异步导入文件方法。

技术介绍

[0002]文件导入业务是大多数业务场景中时常需要的一种业务需求。如图1所示的同步导入文件的步骤示意图可知,在一般情况下,同步导入可以满足大部分的需求,但是对于数据量大、业务拼接复杂的系统来说,管理人员、用户等在等待导入结果的同时可能会出现等待超时,或者需要一直等待执行完成才可以去做其他的业务的情况等。
[0003]基于以上情况,需要异步导入技术,通过生成导入记录并加入队列等消息中间件,保证在系统空闲时进行导入操作,避免同步导入对系统性能的消耗,前端无需为了导入结果保持长时间等待状态,避免对其他业务产生影响。传统技术中,异步导入文件时,导入文件的格式必须严格按照导入模板的格式来,即要求导入文件中每列内容的位置顺序固定(例如导入模板要求导入的列内容包含批次号、客户号、客户名称以及主题,则导入文件中的A列必须是批次号,B列必须是客户号,C列必须是客户名称,D列必须是主题)并且相同时段内只能导入一次,因此,现有的异步导入文件方法存在灵活性差以及并发问题。
[0004]目前所存在的异步导入技术,大多还是利用异步队列实现的异步处理操作,但是倘若队列一直阻塞,服务器可能会主动断开掉空链接,来减少空闲资源。
[0005]对于数据量大、业务拼接复杂的系统来说,同步导入显然已经不能满足大部分的需求,大多数管理人员、用户等更不可能一直等待导入结果,倘若等到最后提示等待超时更容易让用户崩溃;另外,当一个用户再进行导入文件的同时,另一个用户需要等待,造成人员排队现象。
[0006]对于以上情况,急需一种可并发执行并且不需要前端操作用户等待的异步导入技术。

技术实现思路

[0007]本专利技术克服了现有技术的不足之一,提供了一种基于基于线程池的异步导入文件方法,能够并发执行并完成异步导入文件的操作,降低资源消耗,灵活操作文档模板、提高响应速度。
[0008]根据本公开的一方面,提出了一种基于线程池的异步导入文件方法,所述方法包括:
[0009]获取导入文件所对应业务场景的文件模板;
[0010]当判断导入文件符合导入标准时,校验所述导入文件;
[0011]保存导入文件的校验结果到数据库的临时表中,提交导入文件处理任务至线程池中;
[0012]线程处理导入文件任务,并将所述校验结果从临时表中存储至数据库的正式表中;
[0013]查看导入文件列表,以文件形式下载导入文件的错误数据列表。
[0014]在一种可能的实现方式中,所述校验所述导入文件,包括:
[0015]对所述导入文件的文件模板标准和导入文件格式进行校验。
[0016]在一种可能的实现方式中,获取导入文件所对应业务场景的文件模板之后,还包括:设置导入文件的上传规则。
[0017]在一种可能的实现方式中,所述上传规则包括重复上传、同时上传和上传的文件格式。
[0018]在一种可能的实现方式中,所述将所述校验结果从临时表中存储至数据库的正式表中,包括:
[0019]将所述导入文件中的校验结果中的数据从临时表中存储至数据库的正式表中。
[0020]本公开的基于线程池的异步导入文件方法,获取导入文件所对应业务场景的文件模板;当判断导入文件符合导入标准时,校验所述导入文件;保存导入文件的校验结果到数据库的临时表中,提交导入文件处理任务至线程池中;线程处理导入文件任务,并将所述校验结果从临时表中存储至数据库的正式表中;查看导入文件列表,以文件形式下载导入文件的错误数据列表。能够并发完成异步导入文件的操作,降低资源消耗,灵活操作文档模板、提高响应速度。
附图说明
[0021]附图用来提供对本申请的技术方案或现有技术的进一步理解,并且构成说明书的一部分。其中,表达本申请实施例的附图与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。
[0022]图1示出了现有技术中同步导入文件的步骤示意图;
[0023]图2示出了根据本公开一实施例的基于线程池的异步导入文件方法流程图。
具体实施方式
[0024]以下将结合附图及实施例来详细说明本专利技术的实施方式,借此对本专利技术如何应用技术手段来解决技术问题,并达到相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本专利技术的保护范围之内。
[0025]另外,附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0026]基于线程池的异步文件导入可以避免现有异步文件导入存在的问题。首先,线程池可以降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗;其次,可以提高响应速度,当任务到达时,可以不需要等待线程创建就能立即执行;还可以提高线程的可管理性,线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,监控和调优。
[0027]线程池是一种多线程处理形式,处理过程中将处理任务添加到任务队列中,然后在创建线程后自动启动这些处理任务。线程池线程是后台线程。每个线程使用默认的堆栈
大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程使所有处理器保持繁忙,但线程的数目永远不会超过最大值,超过最大值的线程需要排队需等到其他线程完成后才启动。
[0028]图2示出了根据本公开一实施例的基于线程池的异步导入文件方法流程图。如图2所示,该方法可以包括:
[0029]步骤S1:获取导入文件所对应业务场景的文件模板。
[0030]在导入文件之前,需要获取导入文件所对应业务场景的文件模板。其中,文件模板可以根据具体业务需求进行灵活配置。
[0031]在一示例中,在获取导入文件所对应业务场景的文件模板的同时,还设置导入文件的上传规则,其中,文件的上传规则可以包括是否可重复上传,是否可同时上传,可上传的文件格式等,在此不作限定。
[0032]步骤S2:当导入文件符合导入标准时,校验所述导入文件。
[0033]对导入文件进行预处理,需判断导入文件类型是否符合导入标准,即可以根据对应业务场景设置的文件模板规则和文件模板要求进行校验,当导入文件的文件模板规则和文件模板要求符合导入标准时,对导入文件的文件模板标准和文件内容的内容格式等进行校验。其中,不同业务场景的文件模板标准不同,在此不作限定。
[0034]步骤S3:保存导入文件的校验结果到数据库的临时表中,提本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于线程池的异步导入文件方法,其特征在于,所述方法包括:获取导入文件所对应业务场景的文件模板;当导入文件符合导入标准时,校验所述导入文件;保存导入文件的校验结果到数据库的临时表中,提交导入文件处理任务至线程池中;线程处理导入文件任务,并将所述校验结果从临时表中存储至数据库的正式表中;查看导入文件列表,以文件形式下载导入文件的错误数据列表。2.根据权利要求1所述的异步导入文件方法,其特征在于,所述校验所述导入文件,包括:对所述导入文件的文件模板...

【专利技术属性】
技术研发人员:单纯王曦余涛王志军周彦哲
申请(专利权)人:北京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1