CN117149711A - 一种分布式***大文件异步生成和下载方法、***及设备 - Google Patents
一种分布式***大文件异步生成和下载方法、***及设备 Download PDFInfo
- Publication number
- CN117149711A CN117149711A CN202311035879.9A CN202311035879A CN117149711A CN 117149711 A CN117149711 A CN 117149711A CN 202311035879 A CN202311035879 A CN 202311035879A CN 117149711 A CN117149711 A CN 117149711A
- Authority
- CN
- China
- Prior art keywords
- file
- generation
- record
- generated
- configuration record
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本发明涉及文件生成与下载领域,特别是涉及一种分布式***大文件异步生成和下载方法、***及设备。
背景技术
分布式***中通常存在用户需要生成和下载大文件的功能需求,比如在财务公司总账***中,用户在月末要按整个账套生成账套PDF文件并下载下来打印。由于账套文件大,生成文件持续时间长,在生成文件过程中不仅占用服务器内存、CPU、I/O等资源导致***其他功能响应非常慢,而且严重时会导致内存溢出***不可用。
因此,亟需一种方法将大文件的生成和下载从业务***中剥离出来独立运行,通过物理上的隔离避免对业务***正常运行产生影响。
发明内容
本发明的目的是提供一种分布式***大文件异步生成和下载方法、***及设备,能够避免与业务***争夺服务器资源,提高业务***可用性。
为实现上述目的,本发明提供了如下方案:
一种分布式***大文件异步生成和下载方法,包括:
利用业务***获取用户的生成文件请求和配置记录;所述配置记录包括:生成的文件名称、文件处理类名和方法名、文件存放路径以及当前用户ID以及存放记录;
根据生成文件请求生成唯一编号;
将唯一编号、请求时间和配置记录保存到关系型数据库的文件生成配置表;并记录当前文件生成状态为未生成;
获取当前文件生成状态为未生成的配置记录;并根据配置记录以及文件处理类名和方法名执行生成逻辑生成文件,并存储;之后根据当前配置记录对应的唯一编号更新文件生成配置表状态;
根据唯一编号下载对应的文件。
可选地,所述利用业务***获取用户的生成文件请求和配置记录,具体包括:
获取用户的生成文件请求;
将生成文件请求以键值对方式封装成json字符串。
可选地,所述获取当前文件生成状态为未生成的配置记录;并根据配置记录以及文件处理类名和方法名执行生成逻辑生成文件,并存储,具体包括:
每隔设定时间从文件生成配置表中查询文件生成状态的所有记录;
将文件生成状态为未生成的记录按照先进先出原则保存在内存队列中;
监听内存队列,监听到有新的生成记录后,根据生成记录对应的唯一编号查询文件生成配置表;
当存在文件生成状态为未生成的记录后,根据文件处理类名和方法名执行生成逻辑生成文件,保存在配置记录对应的目录下。
可选地,所述根据唯一编号下载对应的文件,具体包括:
根据唯一编号,获取文件生成配置表查询中相应的存放目录和文件名称;
根据文件名称从存放目录中获取文件流形式的文件。
一种分布式***大文件异步生成和下载***,包括:
生成文件请求获取模块,用于利用业务***获取用户的生成文件请求和配置记录;所述配置记录包括:生成的文件名称、文件处理类名和方法名、文件存放路径以及当前用户ID以及存放记录;
文件处理请求接收模块,用于根据生成文件请求生成唯一编号;
文件生成模块,用于将唯一编号、请求时间和配置记录保存到关系型数据库的文件生成配置表;并记录当前文件生成状态为未生成;获取当前文件生成状态为未生成的配置记录;并根据配置记录以及文件处理类名和方法名执行生成逻辑生成文件,并存储;之后根据当前配置记录对应的唯一编号更新文件生成配置表状态;
文件下载模块,用于根据唯一编号下载对应的文件。
一种分布式***大文件异步生成和下载设备,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如所述的方法。
可选地,所述存储器为计算机可读存储介质。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明所提供的一种分布式***大文件异步生成和下载方法、***及设备,利用业务***获取用户的生成文件请求和配置记录,并根据生成文件请求生成的唯一编号、请求时间和配置记录保存到关系型数据库的文件生成配置表;进而利用文件生成配置表实现文件生成的线程;本发明涉及的文件生成是使用线程池减少线程创建和销毁的资源消耗,两个线程间通过内存队列通信将数据扫描与文件生成逻辑解耦,降低***复杂度。本发明将大文件生成和下载处理过程与业务***物理隔离,避免与业务***争夺服务器资源,提高业务***可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种分布式***大文件异步生成和下载方法流程示意图;
图2为文件生成的流程示意图;
图3为本发明所提供的一种分布式***大文件异步生成和下载***结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种分布式***大文件异步生成和下载方法、***及设备,能够避免与业务***争夺服务器资源,提高业务***可用性。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本发明所提供的一种分布式***大文件异步生成和下载方法,包括:
S101,利用业务***获取用户的生成文件请求和配置记录;所述配置记录包括:生成的文件名称、文件处理类名和方法名、文件存放路径以及当前用户ID以及存放记录。
S101具体包括:
获取用户的生成文件请求。生成文件请求包括但不限于:账套机构、月份。
将生成文件请求以键值对方式封装成json字符串。例如,{“orgCode”:1000,“month”:“202101”}。
S102,根据生成文件请求生成唯一编号。
S103,将唯一编号、请求时间和配置记录保存到关系型数据库的文件生成配置表;并记录当前文件生成状态为未生成,可以用status=0表示。
S104,获取当前文件生成状态为未生成的配置记录;并根据配置记录以及文件处理类名和方法名执行生成逻辑生成文件,并存储;之后根据当前配置记录对应的唯一编号更新文件生成配置表状态。
S105具体包括:
每隔设定时间从文件生成配置表中查询文件生成状态的所有记录。
将文件生成状态为未生成的记录按照先进先出原则保存在内存队列中。
监听内存队列,监听到有新的生成记录后,根据生成记录对应的唯一编号查询文件生成配置表。
当存在文件生成状态为未生成的记录后,根据文件处理类名和方法名执行生成逻辑生成文件,保存在配置记录对应的目录下。
S104和S105为文件生成的两个线程的线程池,如图2所示,线程1每隔2分钟从文件生成配置表查询文件生成状态status=0的所有记录,将记录按先进先出原则保存在内存队列中;线程2监听内存队列,监听到有新的处理记录后根据记录的唯一编号查询文件生成配置表,如果查询到文件生成状态status=1则表示文件已生成不处理,如果查询到文件生成状态status=0再根据文件处理类名和方法名执行生成逻辑生成文件,保存在记录指定的目录下,根据当前处理记录唯一编号更新文件生成配置表状态status=1。
S105,根据唯一编号下载对应的文件。
S105具体包括:
根据唯一编号,获取文件生成配置表查询中相应的存放目录和文件名称。
根据文件名称从存放目录中获取文件流形式的文件。
S105还包括:提供文件下载界面嵌入业务***,该界面接收访问用户ID,从文件生成配置表查询用户ID等于当前用户ID的所有文件生成记录并按请求时间倒序排列展示。
文件下载界面接收用户下载文件请求,向文件下载模块传递下载文件的唯一编号,文件下载模块从文件生成配置表查询存放目录和文件名称,从存放目录获取文件以文件流形式返回给浏览器。
文件下载模块提供统一的文件下载界面,用户可以通过该界面跟踪所有历史文件生成状态,提高了工作效率。
如图3所示,本发明所提供的一种分布式***大文件异步生成和下载***,包括:
生成文件请求获取模块,用于利用业务***获取用户的生成文件请求和配置记录;所述配置记录包括:生成的文件名称、文件处理类名和方法名、文件存放路径以及当前用户ID以及存放记录。
文件处理请求接收模块,用于根据生成文件请求生成唯一编号。
文件生成模块,用于将唯一编号、请求时间和配置记录保存到关系型数据库的文件生成配置表;并记录当前文件生成状态为未生成;获取当前文件生成状态为未生成的配置记录;并根据配置记录以及文件处理类名和方法名执行生成逻辑生成文件,并存储;之后根据当前配置记录对应的唯一编号更新文件生成配置表状态。
文件下载模块,用于根据唯一编号下载对应的文件。
为了执行上述实施例对应的方法,以实现相应的功能和技术效果,本发明还提供的一种分布式***大文件异步生成和下载设备,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现所述的方法。
所述存储器为计算机可读存储介质。
基于上述描述,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的计算机存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种分布式***大文件异步生成和下载方法,其特征在于,包括:
利用业务***获取用户的生成文件请求和配置记录;所述配置记录包括:生成的文件名称、文件处理类名和方法名、文件存放路径以及当前用户ID以及存放记录;
根据生成文件请求生成唯一编号;
将唯一编号、请求时间和配置记录保存到关系型数据库的文件生成配置表;并记录当前文件生成状态为未生成;
获取当前文件生成状态为未生成的配置记录;并根据配置记录以及文件处理类名和方法名执行生成逻辑生成文件,并存储;之后根据当前配置记录对应的唯一编号更新文件生成配置表状态;
根据唯一编号下载对应的文件。
2.根据权利要求1所述的一种分布式***大文件异步生成和下载方法,其特征在于,所述利用业务***获取用户的生成文件请求和配置记录,具体包括:
获取用户的生成文件请求;
将生成文件请求以键值对方式封装成json字符串。
3.根据权利要求1所述的一种分布式***大文件异步生成和下载方法,其特征在于,所述获取当前文件生成状态为未生成的配置记录;并根据配置记录以及文件处理类名和方法名执行生成逻辑生成文件,并存储,具体包括:
每隔设定时间从文件生成配置表中查询文件生成状态的所有记录;
将文件生成状态为未生成的记录按照先进先出原则保存在内存队列中;
监听内存队列,监听到有新的生成记录后,根据生成记录对应的唯一编号查询文件生成配置表;
当存在文件生成状态为未生成的记录后,根据文件处理类名和方法名执行生成逻辑生成文件,保存在配置记录对应的目录下。
4.根据权利要求1所述的一种分布式***大文件异步生成和下载方法,其特征在于,所述根据唯一编号下载对应的文件,具体包括:
根据唯一编号,获取文件生成配置表查询中相应的存放目录和文件名称;
根据文件名称从存放目录中获取文件流形式的文件。
5.一种分布式***大文件异步生成和下载***,其特征在于,包括:
生成文件请求获取模块,用于利用业务***获取用户的生成文件请求和配置记录;所述配置记录包括:生成的文件名称、文件处理类名和方法名、文件存放路径以及当前用户ID以及存放记录;
文件处理请求接收模块,用于根据生成文件请求生成唯一编号;
文件生成模块,用于将唯一编号、请求时间和配置记录保存到关系型数据库的文件生成配置表;并记录当前文件生成状态为未生成;获取当前文件生成状态为未生成的配置记录;并根据配置记录以及文件处理类名和方法名执行生成逻辑生成文件,并存储;之后根据当前配置记录对应的唯一编号更新文件生成配置表状态;
文件下载模块,用于根据唯一编号下载对应的文件。
6.一种分布式***大文件异步生成和下载设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-4中任一项所述的方法。
7.根据权利要求6所述的一种分布式***大文件异步生成和下载设备,其特征在于,所述存储器为计算机可读存储介质。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311035879.9A CN117149711A (zh) | 2023-08-17 | 2023-08-17 | 一种分布式***大文件异步生成和下载方法、***及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311035879.9A CN117149711A (zh) | 2023-08-17 | 2023-08-17 | 一种分布式***大文件异步生成和下载方法、***及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117149711A true CN117149711A (zh) | 2023-12-01 |
Family
ID=88885908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311035879.9A Pending CN117149711A (zh) | 2023-08-17 | 2023-08-17 | 一种分布式***大文件异步生成和下载方法、***及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149711A (zh) |
-
2023
- 2023-08-17 CN CN202311035879.9A patent/CN117149711A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11586692B2 (en) | Streaming data processing | |
US11860874B2 (en) | Multi-partitioning data for combination operations | |
US20220327149A1 (en) | Dynamic partition allocation for query execution | |
CN109997126B (zh) | 事件驱动提取、变换、加载(etl)处理 | |
US11151137B2 (en) | Multi-partition operation in combination operations | |
US11232100B2 (en) | Resource allocation for multiple datasets | |
US11461334B2 (en) | Data conditioning for dataset destination | |
US11416528B2 (en) | Query acceleration data store | |
US10726009B2 (en) | Query processing using query-resource usage and node utilization data | |
US11163758B2 (en) | External dataset capability compensation | |
US10795884B2 (en) | Dynamic resource allocation for common storage query | |
Varia | Cloud architectures | |
CN101243445B (zh) | 数据变更通告 | |
US6505200B1 (en) | Application-independent data synchronization technique | |
US20170351989A1 (en) | Providing supply chain information extracted from an order management system | |
EP2469410A2 (en) | System and method for scaling for a large number of concurrent users by storing a user's session state on external storage | |
EP2590090B1 (en) | Dynamic interface to read database through remote procedure call | |
US8751469B2 (en) | System and method for scaling for a large number of concurrent users | |
CN111752959A (zh) | 一种实时数据库跨库sql交互方法和*** | |
US20220245093A1 (en) | Enhanced search performance using data model summaries stored in a remote data store | |
CN111782452A (zh) | 接口对比测试的方法、***、设备和介质 | |
US20090328043A1 (en) | Infrastructure of data summarization including light programs and helper steps | |
US9760576B1 (en) | System and method for performing object-modifying commands in an unstructured storage service | |
CN117149711A (zh) | 一种分布式***大文件异步生成和下载方法、***及设备 | |
KR101888131B1 (ko) | Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법 |
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 |