CN113434469A - 一种基于线程池的异步导入文件方法 - Google Patents
一种基于线程池的异步导入文件方法 Download PDFInfo
- Publication number
- CN113434469A CN113434469A CN202110699820.4A CN202110699820A CN113434469A CN 113434469 A CN113434469 A CN 113434469A CN 202110699820 A CN202110699820 A CN 202110699820A CN 113434469 A CN113434469 A CN 113434469A
- Authority
- CN
- China
- Prior art keywords
- file
- import
- imported
- database
- thread pool
- 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.)
- Pending
Links
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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- 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/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Library & Information Science (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的基于线程池的异步导入文件方法,获取导入文件所对应业务场景的文件模板;当判断导入文件符合导入标准时,校验所述导入文件;保存导入文件的校验结果到数据库的临时表中,提交导入文件处理任务至线程池中;线程处理导入文件任务,并将所述校验结果从临时表中存储至数据库的正式表中;查看导入文件列表,以文件形式下载导入文件的错误数据列表。能够并发完成异步导入文件的操作,降低资源消耗,灵活操作文档模板、提高响应速度。
Description
技术领域
本发明属于文件导入技术领域,具体涉及一种基于线程池的异步导入文件方法。
背景技术
文件导入业务是大多数业务场景中时常需要的一种业务需求。如图1所示的同步导入文件的步骤示意图可知,在一般情况下,同步导入可以满足大部分的需求,但是对于数据量大、业务拼接复杂的系统来说,管理人员、用户等在等待导入结果的同时可能会出现等待超时,或者需要一直等待执行完成才可以去做其他的业务的情况等。
基于以上情况,需要异步导入技术,通过生成导入记录并加入队列等消息中间件,保证在系统空闲时进行导入操作,避免同步导入对系统性能的消耗,前端无需为了导入结果保持长时间等待状态,避免对其他业务产生影响。传统技术中,异步导入文件时,导入文件的格式必须严格按照导入模板的格式来,即要求导入文件中每列内容的位置顺序固定(例如导入模板要求导入的列内容包含批次号、客户号、客户名称以及主题,则导入文件中的A列必须是批次号,B列必须是客户号,C列必须是客户名称,D列必须是主题)并且相同时段内只能导入一次,因此,现有的异步导入文件方法存在灵活性差以及并发问题。
目前所存在的异步导入技术,大多还是利用异步队列实现的异步处理操作,但是倘若队列一直阻塞,服务器可能会主动断开掉空链接,来减少空闲资源。
对于数据量大、业务拼接复杂的系统来说,同步导入显然已经不能满足大部分的需求,大多数管理人员、用户等更不可能一直等待导入结果,倘若等到最后提示等待超时更容易让用户崩溃;另外,当一个用户再进行导入文件的同时,另一个用户需要等待,造成人员排队现象。
对于以上情况,急需一种可并发执行并且不需要前端操作用户等待的异步导入技术。
发明内容
本发明克服了现有技术的不足之一,提供了一种基于基于线程池的异步导入文件方法,能够并发执行并完成异步导入文件的操作,降低资源消耗,灵活操作文档模板、提高响应速度。
根据本公开的一方面,提出了一种基于线程池的异步导入文件方法,所述方法包括:
获取导入文件所对应业务场景的文件模板;
当判断导入文件符合导入标准时,校验所述导入文件;
保存导入文件的校验结果到数据库的临时表中,提交导入文件处理任务至线程池中;
线程处理导入文件任务,并将所述校验结果从临时表中存储至数据库的正式表中;
查看导入文件列表,以文件形式下载导入文件的错误数据列表。
在一种可能的实现方式中,所述校验所述导入文件,包括:
对所述导入文件的文件模板标准和导入文件格式进行校验。
在一种可能的实现方式中,获取导入文件所对应业务场景的文件模板之后,还包括:设置导入文件的上传规则。
在一种可能的实现方式中,所述上传规则包括重复上传、同时上传和上传的文件格式。
在一种可能的实现方式中,所述将所述校验结果从临时表中存储至数据库的正式表中,包括:
将所述导入文件中的校验结果中的数据从临时表中存储至数据库的正式表中。
本公开的基于线程池的异步导入文件方法,获取导入文件所对应业务场景的文件模板;当判断导入文件符合导入标准时,校验所述导入文件;保存导入文件的校验结果到数据库的临时表中,提交导入文件处理任务至线程池中;线程处理导入文件任务,并将所述校验结果从临时表中存储至数据库的正式表中;查看导入文件列表,以文件形式下载导入文件的错误数据列表。能够并发完成异步导入文件的操作,降低资源消耗,灵活操作文档模板、提高响应速度。
附图说明
附图用来提供对本申请的技术方案或现有技术的进一步理解,并且构成说明书的一部分。其中,表达本申请实施例的附图与本申请的实施例一起用于解释本申请的技术方案,但并不构成对本申请技术方案的限制。
图1示出了现有技术中同步导入文件的步骤示意图;
图2示出了根据本公开一实施例的基于线程池的异步导入文件方法流程图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达到相应技术效果的实现过程能充分理解并据以实施。本申请实施例以及实施例中的各个特征,在不相冲突前提下可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
基于线程池的异步文件导入可以避免现有异步文件导入存在的问题。首先,线程池可以降低资源消耗,通过重复利用已创建的线程降低线程创建和销毁造成的消耗;其次,可以提高响应速度,当任务到达时,可以不需要等待线程创建就能立即执行;还可以提高线程的可管理性,线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,监控和调优。
线程池是一种多线程处理形式,处理过程中将处理任务添加到任务队列中,然后在创建线程后自动启动这些处理任务。线程池线程是后台线程。每个线程使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程使所有处理器保持繁忙,但线程的数目永远不会超过最大值,超过最大值的线程需要排队需等到其他线程完成后才启动。
图2示出了根据本公开一实施例的基于线程池的异步导入文件方法流程图。如图2所示,该方法可以包括:
步骤S1:获取导入文件所对应业务场景的文件模板。
在导入文件之前,需要获取导入文件所对应业务场景的文件模板。其中,文件模板可以根据具体业务需求进行灵活配置。
在一示例中,在获取导入文件所对应业务场景的文件模板的同时,还设置导入文件的上传规则,其中,文件的上传规则可以包括是否可重复上传,是否可同时上传,可上传的文件格式等,在此不作限定。
步骤S2:当导入文件符合导入标准时,校验所述导入文件。
对导入文件进行预处理,需判断导入文件类型是否符合导入标准,即可以根据对应业务场景设置的文件模板规则和文件模板要求进行校验,当导入文件的文件模板规则和文件模板要求符合导入标准时,对导入文件的文件模板标准和文件内容的内容格式等进行校验。其中,不同业务场景的文件模板标准不同,在此不作限定。
步骤S3:保存导入文件的校验结果到数据库的临时表中,提交导入文件处理任务至线程池中。
经步骤S2的基本校验结束后,将导入文件内容的内容格式校验结果保存至数据库中的一个临时表中,然后提交一个处理任务至线程池中,通知用户稍后查看文件导入结果。例如,可以使用submit()函数将导入文件任务提交至线程池中即可,此时,系统还可以自动进行其他业务处理,不需要人员等待。
步骤S4:线程处理导入文件任务,并将所述校验结果从临时表中存储至数据库的正式表中。
线程处理提交的导入文件任务,将临时表中校验结果以数据形式存储至数据库的正式表中,即主要是对校验结果中的数据进行处理并存储。
步骤S5:查看导入文件列表,以文件形式下载导入文件的错误数据列表。例如,用户可查看导入文件情况列表,并以文件形式下载导入文件的错误数据列表,同时记录错误数据,以方便用户检查核对进行再次上传。
本公开的基于线程池的异步导入文件方法,获取导入文件所对应业务场景的文件模板;当判断导入文件符合导入标准时,校验所述导入文件;保存导入文件的校验结果到数据库的临时表中,提交导入文件处理任务至线程池中;线程处理导入文件任务,并将所述校验结果从临时表中存储至数据库的正式表中;查看导入文件列表,以文件形式下载导入文件的错误数据列表。能够并发完成异步导入文件的操作,降低资源消耗,灵活操作文档模板、提高响应速度。
虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (5)
1.一种基于线程池的异步导入文件方法,其特征在于,所述方法包括:
获取导入文件所对应业务场景的文件模板;
当导入文件符合导入标准时,校验所述导入文件;
保存导入文件的校验结果到数据库的临时表中,提交导入文件处理任务至线程池中;
线程处理导入文件任务,并将所述校验结果从临时表中存储至数据库的正式表中;
查看导入文件列表,以文件形式下载导入文件的错误数据列表。
2.根据权利要求1所述的异步导入文件方法,其特征在于,所述校验所述导入文件,包括:
对所述导入文件的文件模板标准和导入文件格式进行校验。
3.根据权利要求1所述的异步导入文件方法,其特征在于,获取导入文件所对应业务场景的文件模板之后,还包括:设置导入文件的上传规则。
4.根据权利要求3所述的异步导入文件方法,其特征在于,所述上传规则包括重复上传、同时上传和上传的文件格式。
5.根据权利要求1所述的异步导入文件方法,其特征在于,所述将所述校验结果从临时表中存储至数据库的正式表中,包括:
将所述导入文件中的校验结果中的数据从临时表中存储至数据库的正式表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110699820.4A CN113434469A (zh) | 2021-06-23 | 2021-06-23 | 一种基于线程池的异步导入文件方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110699820.4A CN113434469A (zh) | 2021-06-23 | 2021-06-23 | 一种基于线程池的异步导入文件方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113434469A true CN113434469A (zh) | 2021-09-24 |
Family
ID=77753575
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110699820.4A Pending CN113434469A (zh) | 2021-06-23 | 2021-06-23 | 一种基于线程池的异步导入文件方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113434469A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023246008A1 (zh) * | 2022-06-24 | 2023-12-28 | 北京京东振世信息技术有限公司 | 数据处理方法、装置及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758184A (en) * | 1995-04-24 | 1998-05-26 | Microsoft Corporation | System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads |
CN106201443A (zh) * | 2016-07-27 | 2016-12-07 | 福建富士通信息软件有限公司 | 一种基于Storm流式计算框架多并发写文件的方法及系统 |
CN111400246A (zh) * | 2020-03-26 | 2020-07-10 | 广州酷旅旅行社有限公司 | 异步导入文件方法、装置、计算机设备和存储介质 |
CN111859205A (zh) * | 2020-07-14 | 2020-10-30 | 上海悦易网络信息技术有限公司 | 一种用于批量处理任务的解析方法及设备 |
-
2021
- 2021-06-23 CN CN202110699820.4A patent/CN113434469A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5758184A (en) * | 1995-04-24 | 1998-05-26 | Microsoft Corporation | System for performing asynchronous file operations requested by runnable threads by processing completion messages with different queue thread and checking for completion by runnable threads |
CN106201443A (zh) * | 2016-07-27 | 2016-12-07 | 福建富士通信息软件有限公司 | 一种基于Storm流式计算框架多并发写文件的方法及系统 |
CN111400246A (zh) * | 2020-03-26 | 2020-07-10 | 广州酷旅旅行社有限公司 | 异步导入文件方法、装置、计算机设备和存储介质 |
CN111859205A (zh) * | 2020-07-14 | 2020-10-30 | 上海悦易网络信息技术有限公司 | 一种用于批量处理任务的解析方法及设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023246008A1 (zh) * | 2022-06-24 | 2023-12-28 | 北京京东振世信息技术有限公司 | 数据处理方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8949258B2 (en) | Techniques to manage file conversions | |
CN108023908B (zh) | 数据更新方法、装置及系统 | |
US9557880B2 (en) | Shared user interface services framework | |
US10218775B2 (en) | Methods for servicing web service requests using parallel agile web services and devices thereof | |
CN110221927B (zh) | 异步消息处理方法和装置 | |
US8938490B2 (en) | System and method for accessing mainframe system automation from a process automation application | |
US9009187B2 (en) | Assigning tasks to threads requiring limited resources using programmable queues | |
CN107239325B (zh) | 单证数据处理方法和装置 | |
CN110851276A (zh) | 一种业务请求处理方法、装置、服务器和存储介质 | |
CN111414158A (zh) | 跨平台开发方法、跨平台开发系统及电子设备 | |
CN107797874B (zh) | 一种基于嵌入式jetty和spark on yarn框架的资源管控方法 | |
CN113434469A (zh) | 一种基于线程池的异步导入文件方法 | |
CN111294377A (zh) | 一种依赖关系的网络请求发送方法、终端装置及存储介质 | |
CN103761106A (zh) | 流程的控制方法及流程引擎 | |
CN109389306B (zh) | 一种用户订单的同步方法和装置 | |
CN111382141A (zh) | 主从架构配置方法、装置、设备以及计算机可读存储介质 | |
CN116226178A (zh) | 一种数据查询方法、装置、存储介质及电子装置 | |
CN114780228A (zh) | 一种混合云资源创建方法及系统 | |
CN114564249A (zh) | 推荐调度引擎、推荐调度方法及计算机可读存储介质 | |
CN108984318B (zh) | 基于驱动模型的消息投递方法、装置及可读存储介质 | |
WO2002079985A2 (en) | Self-downloading network client | |
KR101732922B1 (ko) | Gui 기반의 비동기 방식 코딩 시스템 및 방법 | |
CN116248495A (zh) | 资源确定方法、装置和电子设备 | |
CN113792051B (zh) | 基于多模态锁的数据处理方法、系统、设备和存储介质 | |
CN109165200B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210924 |
|
RJ01 | Rejection of invention patent application after publication |