本发明涉及应用开发技术领域,尤其涉及一种配置化文件的生成方法及系统。
背景技术:
在应用开发中,文件生成是一个普遍需要的功能,面临生成多种不同格式文件、文件生成任务的并发度等问题。
目前,在文件生成时常用的功能为针对单个文件生成需求,根据非功能需求进行针对性的代码开发,每一个文件单独开发一个功能。
由此可以看出,现有技术采用的方法在面对单个系统需要生成多种不同类型的文件的需求下,会出现文件生成任务高碎片化,文件生成作业易发生冲突。每一次文件生成需求均需要重新开发代码,对于文件生成功能的质量和性能参差不齐,开发成本高,误码率高,系统运行不稳定。
因此,如何有效的生成配置化文件是一项亟待解决的问题。
技术实现要素:
有鉴于此,本发明提供了一种配置化文件的生成方法,能够解决多种不同格式的文件在一个应用中生成的问题,同时解决面对生成大文件时的缓存处理问题,面对大量小文件生成的并发度设置的问题,解决多种不同的文件生成应用的不同的性能设计安排并存的情况。
本发明提供了一种配置化文件的生成方法,所述方法包括:
基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;
调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;
基于文件生成线程池并行读取文件模板生成各类数据文件。
优选地,所述基于文件生成线程池并行读取文件模板生成各类数据文件包括:
基于freemarker标记语言定义文件模板;
基于多层次的并发度和缓存换页处理算法完成文件生产配置。
优选地,所述基于多层次的并发度和缓存换页处理算法完成文件生产配置包括:
通过可配置的线程池方式完成多个任务处理。
优选地,所述基于多层次的并发度和缓存换页处理算法完成文件生产配置还包括:
通过二层线程池的方式完成任务内部多个文件的并发处理。
优选地,所述基于多层次的并发度和缓存换页处理算法完成文件生产配置还包括:
通过缩小线程池最大并行度的方式降低并行度,提升当个任务的资源占用数,完成对大文件的处理。
优选地,所述基于多层次的并发度和缓存换页处理算法完成文件生产配置还包括:
通过加大并发数完成大量小文件的快速生成。
一种配置化文件的生成系统,包括:
获取模块,用于基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;
第一生成模块,用于调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;
第二生成模块,基于文件生成线程池并行读取文件模板生成各类数据文件。
优选地,所述第二生成模块包括:
定义单元,用于基于freemarker标记语言定义文件模板;
处理单元,用于基于多层次的并发度和缓存换页处理算法完成文件生产配置。
优选地,所述处理单元包括:
多个任务处理单元,用于通过可配置的线程池方式完成多个任务处理。
优选地,所述处理单元还包括:
多个文件的并发处理单元,用于通过二层线程池的方式完成任务内部多个文件的并发处理。
优选地,所述处理单元还包括:
大文件的处理单元,用于通过缩小线程池最大并行度的方式降低并行度,提升当个任务的资源占用数,完成对大文件的处理。
优选地,所述处理单元还包括:
小文件生成单元,用于通过加大并发数完成大量小文件的快速生成。
从上述技术方案可以看出,本发明提供了一种配置化文件的生成方法,基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;基于文件生成线程池并行读取文件模板生成各类数据文件。能够解决多种不同格式的文件在一个应用中生成的问题,同时解决面对生成大文件时的缓存处理问题,面对大量小文件生成的并发度设置的问题,解决多种不同的文件生成应用的不同的性能设计安排并存的情况。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种配置化文件的生成方法实施例1的方法流程图;
图2为本发明公开的一种配置化文件的生成方法实施例2的方法流程图;
图3为本发明公开的一种配置化文件的生成方法实施例3的方法流程图;
图4为本发明公开的一种配置化文件的生成系统实施例1的结构示意图;
图5为本发明公开的一种配置化文件的生成系统实施例2的结构示意图;
图6为本发明公开的一种配置化文件的生成系统实施例3的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明公开的一种配置化文件的生成方法的实施例1的流程图,所述方法可以包括以下步骤:
s101、基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;
当需要生成文件时,首先基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程。即通过ibatis框架的sql配置功能,将业务逻辑通过sql语句配置到逻辑配置文件中。
s102、调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;
然后调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果。即根据ibatis中制定相应的sqlid,按配置的多个sqlid组合为一个独立的业务逻辑模块,通过任务调度完成相应逻辑的处理。
s103、基于文件生成线程池并行读取文件模板生成各类数据文件。
在完成业务数据的提取后,根据文件配置模板,按照freemarker标记语言的文件配置规则,进行文件数据的填充,进而生成相应的数据文件。
综上所述,在上述实施例中,在生成文件时,基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;基于文件生成线程池并行读取文件模板生成各类数据文件。能够解决多种不同格式的文件在一个应用中生成的问题,同时解决面对生成大文件时的缓存处理问题,面对大量小文件生成的并发度设置的问题,解决多种不同的文件生成应用的不同的性能设计安排并存的情况。
如图2所示,为本发明公开的一种配置化文件的生成方法的实施例2的流程图,所述方法可以包括以下步骤:
s201、基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;
当需要生成文件时,首先基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程。即通过ibatis框架的sql配置功能,将业务逻辑通过sql语句配置到逻辑配置文件中。
s202、调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;
然后调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果。即根据ibatis中制定相应的sqlid,按配置的多个sqlid组合为一个独立的业务逻辑模块,通过任务调度完成相应逻辑的处理。
s203、基于freemarker标记语言定义文件模板;
文件生成通过支持freemarker标记语言的方式定义文件模板,通过不同的文件模板支持生产不同格式的文本文件。文件格式通过文本模板配置,文本模板支持多种格式,包括单一表的,循环列表等,支持xml,csv等文本文件。各种文件格式的支持,是通过freemarker标记语言的使用,支持高度的可配置化,进而支持各类文件格式的生成。
s204、基于多层次的并发度和缓存换页处理算法完成文件生产配置。
最后通过多层次的并发度和缓存换页处理算法,支持大文件和大量小文件的生产配置。
综上所述,在上述实施例中,在生成文件时,基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;基于freemarker标记语言定义文件模板,基于多层次的并发度和缓存换页处理算法完成文件生产配置。能够解决多种不同格式的文件在一个应用中生成的问题,同时解决面对生成大文件时的缓存处理问题,面对大量小文件生成的并发度设置的问题,解决多种不同的文件生成应用的不同的性能设计安排并存的情况。
如图3所示,为本发明公开的一种配置化文件的生成方法的实施例3的流程图,所述方法可以包括以下步骤:
s301、基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;
当需要生成文件时,首先基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程。即通过ibatis框架的sql配置功能,将业务逻辑通过sql语句配置到逻辑配置文件中。
s302、调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;
然后调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果。即根据ibatis中制定相应的sqlid,按配置的多个sqlid组合为一个独立的业务逻辑模块,通过任务调度完成相应逻辑的处理。
s303、基于freemarker标记语言定义文件模板;
文件生成通过支持freemarker标记语言的方式定义文件模板,通过不同的文件模板支持生产不同格式的文本文件。文件格式通过文本模板配置,文本模板支持多种格式,包括单一表的,循环列表等,支持xml,csv等文本文件。各种文件格式的支持,是通过freemarker标记语言的使用,支持高度的可配置化,进而支持各类文件格式的生成。
s304、通过可配置的线程池方式完成多个任务处理;
对于并发度的管理上,支持从任务角度,通过可配置的线程池方式支持多个任务的处理。
s305、通过二层线程池的方式完成任务内部多个文件的并发处理;
在任务内部,通过二层线程池的方式,支持任务内部多个文件的并发处理,支持各类型需求的并发需求。
s306、通过缩小线程池最大并行度的方式降低并行度,提升当个任务的资源占用数,完成对大文件的处理;
对于大文件的处理,可以通过缩小线程池最大并行度的方式降低并行度,提升当个任务的资源占用数,进而支持大文件的生成。
s307、通过加大并发数完成大量小文件的快速生成。
对于大量小文件生成需求,通过加大并发数,支持大量小文件的快速生成。
综上所述,在上述实施例中,在生成文件时,基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;基于freemarker标记语言定义文件模板,通过可配置的线程池方式完成多个任务处理,通过二层线程池的方式完成任务内部多个文件的并发处理,通过缩小线程池最大并行度的方式降低并行度,提升当个任务的资源占用数,完成对大文件的处理,通过加大并发数完成大量小文件的快速生成。能够解决多种不同格式的文件在一个应用中生成的问题,同时解决面对生成大文件时的缓存处理问题,面对大量小文件生成的并发度设置的问题,解决多种不同的文件生成应用的不同的性能设计安排并存的情况。
如图4所示,为本发明公开的一种配置化文件的生成系统的实施例1的结构示意图,所述系统可以包括:
获取模块401,用于基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;
当需要生成文件时,首先基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程。即通过ibatis框架的sql配置功能,将业务逻辑通过sql语句配置到逻辑配置文件中。
第一生成模块402,用于调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;
然后调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果。即根据ibatis中制定相应的sqlid,按配置的多个sqlid组合为一个独立的业务逻辑模块,通过任务调度完成相应逻辑的处理。
第二生成模块403,基于基于文件生成线程池并行读取文件模板生成各类数据文件。
在完成业务数据的提取后,根据文件配置模板,按照freemarker标记语言的文件配置规则,进行文件数据的填充,进而生成相应的数据文件。
综上所述,在上述实施例中,在生成文件时,基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;基于文件生成线程池并行读取文件模板生成各类数据文件。能够解决多种不同格式的文件在一个应用中生成的问题,同时解决面对生成大文件时的缓存处理问题,面对大量小文件生成的并发度设置的问题,解决多种不同的文件生成应用的不同的性能设计安排并存的情况。
如图5所示,为本发明公开的一种配置化文件的生成系统的实施例2的结构示意图,所述系统可以包括:
获取模块501,用于基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;
当需要生成文件时,首先基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程。即通过ibatis框架的sql配置功能,将业务逻辑通过sql语句配置到逻辑配置文件中。
第一生成模块502,用于调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;
然后调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果。即根据ibatis中制定相应的sqlid,按配置的多个sqlid组合为一个独立的业务逻辑模块,通过任务调度完成相应逻辑的处理。
定义单元503,用于基于freemarker标记语言定义文件模板;
文件生成通过支持freemarker标记语言的方式定义文件模板,通过不同的文件模板支持生产不同格式的文本文件。文件格式通过文本模板配置,文本模板支持多种格式,包括单一表的,循环列表等,支持xml,csv等文本文件。各种文件格式的支持,是通过freemarker标记语言的使用,支持高度的可配置化,进而支持各类文件格式的生成。
处理单元504,用于基于多层次的并发度和缓存换页处理算法完成文件生产配置。
最后通过多层次的并发度和缓存换页处理算法,支持大文件和大量小文件的生产配置。
综上所述,在上述实施例中,在生成文件时,基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;基于freemarker标记语言定义文件模板,基于多层次的并发度和缓存换页处理算法完成文件生产配置。能够解决多种不同格式的文件在一个应用中生成的问题,同时解决面对生成大文件时的缓存处理问题,面对大量小文件生成的并发度设置的问题,解决多种不同的文件生成应用的不同的性能设计安排并存的情况。
如图6所示,为本发明公开的一种配置化文件的生成系统的实施例3的结构示意图,所述系统可以包括:
获取模块601,用于基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;
当需要生成文件时,首先基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程。即通过ibatis框架的sql配置功能,将业务逻辑通过sql语句配置到逻辑配置文件中。
第一生成模块602,用于调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;
然后调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果。即根据ibatis中制定相应的sqlid,按配置的多个sqlid组合为一个独立的业务逻辑模块,通过任务调度完成相应逻辑的处理。
定义单元603,用于基于freemarker标记语言定义文件模板;
文件生成通过支持freemarker标记语言的方式定义文件模板,通过不同的文件模板支持生产不同格式的文本文件。文件格式通过文本模板配置,文本模板支持多种格式,包括单一表的,循环列表等,支持xml,csv等文本文件。各种文件格式的支持,是通过freemarker标记语言的使用,支持高度的可配置化,进而支持各类文件格式的生成。
多个任务处理单元604,用于通过可配置的线程池方式完成多个任务处理;
对于并发度的管理上,支持从任务角度,通过可配置的线程池方式支持多个任务的处理。
多个文件的并发处理单元605,用于通过二层线程池的方式完成任务内部多个文件的并发处理;
在任务内部,通过二层线程池的方式,支持任务内部多个文件的并发处理,支持各类型需求的并发需求。
大文件的处理单元606,用于通过缩小线程池最大并行度的方式降低并行度,提升当个任务的资源占用数,完成对大文件的处理;
对于大文件的处理,可以通过缩小线程池最大并行度的方式降低并行度,提升当个任务的资源占用数,进而支持大文件的生成。
小文件生成单元607,用于通过加大并发数完成大量小文件的快速生成。
对于大量小文件生成需求,通过加大并发数,支持大量小文件的快速生成。
综上所述,在上述实施例中,在生成文件时,基于配置文件中的任务id获取该任务对应的sqlid编码,得到该任务对应的业务逻辑处理过程;调用业务处理逻辑配置,基于数据查询线程池配置信息完成业务数据生成任务调度,生成业务数据结果;基于freemarker标记语言定义文件模板,通过可配置的线程池方式完成多个任务处理,通过二层线程池的方式完成任务内部多个文件的并发处理,通过缩小线程池最大并行度的方式降低并行度,提升当个任务的资源占用数,完成对大文件的处理,通过加大并发数完成大量小文件的快速生成。能够解决多种不同格式的文件在一个应用中生成的问题,同时解决面对生成大文件时的缓存处理问题,面对大量小文件生成的并发度设置的问题,解决多种不同的文件生成应用的不同的性能设计安排并存的情况。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。