一种多离线工具调用生成临时文件的优化方法与流程

文档序号:32442556发布日期:2022-12-06 22:40阅读:55来源:国知局
一种多离线工具调用生成临时文件的优化方法与流程

1.本发明涉及城市轨道交通信号处理技术领域,更具体地说涉及一种多离线工具调用生成临时文件的优化方法。


背景技术:

2.城市轨道交通cbtc信号系统的正常运行依托于信号系统的在线软件获得的实时数据,为了减少cbtc信号系统在线软件的计算量,提升在线软件的运行效率,需要将在线软件运行时需要的静态数据通过离线数据准备工具(简称“离线工具”)生成。大部分在线软件均有对应的离线工具为其生成静态数据,而离线工具之间的调用应用于多种场景,其中包含:某离线数据准备工具(工具a)运行时需要调用离线数据准备工具(工具b)对工具a的输入文件进行处理,生成工具a需要的数据文件(图1中的工具b输出文件),而工具b生成文件过程中需要调用工具c对输入文件中的部分数据(图2中的part2)进行处理,生成工具b需要的中间临时数据文件(图2中的result2)。
3.该场景对应的工具a调用工具b,工具b运行中调用工具c生成中间文件的常规解决方案如图1和图2所示。
4.该方案中,工具a将自己的输入文件file复制到工具b对应的输入目录,作为工具b的输入文件file1。工具b中的file1输入文件既包含其工具b自身需要处理的part1部分,还包含工具c需要处理的part2部分。工具b运行中会创建临时文件夹temp用于存储工具c生成的中间文件(result2),当工具c的输出result2生成到temp文件夹后,b工具会对temp文件夹中的数据result2和自身对part1输入进行处理后生成的数据result1进行逻辑运算,运算完成后生成工具b的输出文件并清空temp文件夹中所有文件。
5.其中,工具c生成临时中间数据文件result2到temp文件夹是通过工具b提供给工具c两个输入参数:1、输入文件file1的全路径,便于工具c对该输入文件进行解析,提取出工具c需要的数据(part2);2、工具c的生成文件(工具b需要的中间数据result2)输出路径(工具b的temp文件夹)。
6.工具c以可执行程序(exe文件)的方式集成于工具b的可执行工具文件夹中,工具b以可执行包的方式存在于工具a的代码结构中。工具a通过工具b的exe文件调用工具b,工具b运行过程中自动调用工具c的exe文件来调用工具c,以此完成工具的多级调用。
7.上述方案优点有:工具b和工具c作为独立的功能软件被上级工具调用,处理过程简洁明了,实施方便。
8.缺点:1.当输入文件数据量增大或者结构过于复杂时,工具c从工具b获取的输入文件中解析出自己需要的数据内容(part2)时会增加一定的运算量,增加运行时间;2.各离线数据准备工具严格执行自身的版本控制要求,当工具a中的下级工具生
成逻辑不满足上级工具要求时,需要下级工具对应开发人员进行版本升级发布后工具a才能使用,这样会大大影响工具a的发布效率。因此如何提升集成了数据准备工具b和c功能的工具a的运算效率和发布效率成了关键问题。


技术实现要素:

9.为了克服上述现有技术中存在的缺陷和不足,本发明提供了一种多离线工具调用生成临时文件的优化方法,本发明的发明目的在于针对现有方案的不足,提出一种数据准备工具间多级调用解析输入文件部分内容生成临时文件的数据准备工具优化方法,提升数据准备工具的运行效率和发布进度。
10.为了解决上述现有技术中存在的问题,本发明是通过下述技术方案实现的。
11.本发明提供了一种多离线工具调用生成临时文件的优化方法,该优化方法包括以下步骤:s1、拆分离线数据准备工具ⅰ的输入文件,将离线数据准备工具ⅰ的输入文件拆分成独立的part1数据部分和part2数据部分;s2、将用于处理part2数据部分的离线数据准备工具ⅲ中用于处理part2数据部分的关键逻辑代码引入到离线数据准备工具ⅰ中,该引入的关键逻辑代码在离线数据准备工具ⅰ中称为功能模块ⅰ;s3、在离线数据准备工具ⅰ运行时且离线数据准备工具ⅰ未调用离线数据准备工具ⅱ之前,part2数据部分由功能模块ⅰ进行处理,生成供离线数据准备工具ⅱ运行时调用的中间临时数据文件result2;并将功能模块ⅰ生成的中间临时数据文件result2存储在离线数据准备工具ⅱ中的某个不会被修改的目录下;s4、重写离线数据准备工具ⅲ的功能,保持其外部接口参数不变,将其内部功能修改为:当离线数据准备工具ⅲ被离线数据准备工具ⅱ调用时,离线数据准备工具ⅲ将中间临时数据文件result2从其在离线数据准备工具ⅱ的存放目录,复制到离线数据准备工具ⅲ的输出目录中,作为伪装离线数据准备工具ⅲ的输出数据;s5、将part1数据部分作为离线数据准备工具ⅱ的输入文件,由离线数据准备工具ⅱ本身的处理逻辑进行处理,生成处理结果数据result1;s6、在离线数据准备工具ⅱ运行中,当离线数据准备工具ⅱ调用离线数据准备工具ⅲ时,生成相同的调用指令传输到伪装离线数据准备工具ⅲ中;伪装离线数据准备工具ⅲ将中间临时数据文件result2传输到伪装离线数据准备工具ⅲ的输出目录;s7、离线数据准备工具ⅱ对中间临时数据文件result2和其自身对part1部分进行处理后生成的数据result1进行逻辑运算,运算完成后生成离线数据准备工具ⅱ的输出文件。
12.进一步的,s1步骤中,具体是依据离线数据准备工具ⅰ运行时需要调用的离线数据准备工具ⅱ的输入数据要求,以及离线数据准备工具ⅱ生成文件过程中需要调用离线数据准备工具ⅲ的输入数据要求,将离线数据准备工具ⅰ的输入文件拆分成独立的part1数据部分和part2数据部分;其中part1数据部分对应为离线数据准备工具ⅱ,part2数据部分对应功能模块ⅰ。
13.更进一步的,s6步骤中,在离线数据准备工具ⅱ运行中,离线数据准备工具ⅱ会在
离线数据准备工具ⅱ中创建临时文件夹,当离线数据准备工具ⅱ调用离线数据准备工具ⅲ时,生成相同的调用指令传输到伪装离线数据准备工具ⅲ中;此过程中伪装离线数据准备工具ⅲ获取的输出路径参数为离线数据准备工具ⅱ的临时文件夹的路径;伪装离线数据准备工具ⅲ将中间临时数据文件result2复制到离线数据准备工具ⅱ的临时文件夹中。
14.更进一步的,s7步骤中,离线数据准备工具ⅱ运算完成后生成离线数据准备工具ⅱ的输出文件并清空临时文件夹中的所有文件。
15.更进一步的,s7步骤中离线数据准备工具ⅱ生成的输出文件即为离线数据准备工具ⅰ的输出。
16.与现有技术相比,本发明所带来的有益的技术效果表现在:1、为减少离线数据准备工具ⅲ(工具c)对输入文件中part2内容的提取的运算量,在输入文件易于拆分成独立part1和part2时,将输入文件拆分成单独的part1和part2两份输入文件。为提升离线数据准备工具ⅰ(工具a)的发布效率,在离线数据准备工具ⅱ(工具b)代码量较大不便移植,而离线数据准备工具ⅲ(工具c)代码量较小方便移植情况下,将工具c自身的对part2处理的关键逻辑代码引入工具a。此过程中移入a工具中的c工具的功能对应处理数据部分(简称功能c)无需依赖于工具c对应开发小组发布的工具c。此过程既把b工具和c工具的功能隔开,无需采用中间调用(工具b调用工具c),同时也方便工具a根据自身需要对功能c进行维护。该过程中的关键点是如何将c功能生成的数据在工具b运行中正确的时间点放入b工具的临时文件夹中而不影响工具b本身的处理过程。为解决该问题,在工具b的整个处理流程中,依然保留在相应时刻调用“工具c”,此“工具c”并不指已发布的某个版本的工具c,而是保留工具c的外部接口,改变其内在处理逻辑的一个伪装“工具c”。
17.2、本方案利用拆分输入文件形成对应功能独立输入文件的方法,降低了下级工具在输入文件中读取所需输入数据时的解析难度;将工具c的功能引入工具a代码逻辑处理中,工具a因此集成了工具c功能,易于工具a对功能c的维护,而无需依赖于发布的工具c的功能,从而提升了工具a发布效率。同时在不影响工具b运行中在正确的时间点将中间文件(result2)生成到要求输出的临时文件夹,工具b采用调用“伪装工具c”的形式将已经生成好的中间数据文件复制到要求的临时文件夹输出目录,使得工具b在调用“工具c”生成工具b所需中间文件的处理流程毫无影响。此方案中,工具a仅依赖于工具b,而无需依赖于工具c,使得工具a的依赖性降低,大大有利于工具a的开发进度和发布进度。该方案还提升了工具a的使用场景的多用性:对于输入文件中准备了该中间数据(result2)的输入文件,该方案依然适用。工具a可以根据输入文件是part1和part2还是part1 和result2时分情况决定是否调用功能c,当输入文件类型为part1和result2时,工具a不调用功能c,工具b在调用“伪装工具c”时依然可以将已经提供的并且作为输入的“中间数据文件”result2复制到要求的输出目录(工具b的临时文件夹)中。
附图说明
18.图1为本发明背景技术中离线数据准备工具a(工具a)的一种处理流程图;图2为本发明背景技术中离线数据准备工具b(工具b)调用离线数据准备工具c(工具c)的处理流程图;图3为本发明离线数据准备工具ⅰ的处理流程图。
具体实施方式
19.下面将结合本发明说明书附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
20.如图1和图2所示处理流程中,在数据处理和数据准备工具发布过程中拥有一定的弊端,主要有如下两方面原因:1.当输入文件数据量很大或者结构过于复杂时,离线数据准备工具c从输入文件中解析出自己需要的数据内容(part2)时会增加一定的运算量,增加运行时间;2.各离线数据准备工具严格执行自身的版本控制要求,当离线数据准备工具a中的下级工具(工具b或工具c)生成逻辑不满足上级工具a的要求时,需要下级工具对应开发人员进行版本升级发布后离线数据准备工具a才能使用,这样会大大影响离线数据准备工具a的发布效率。
21.鉴于以上原因,所以亟需设计一种多离线工具调用生成临时文件的软件优化方法,提升工具a的运行效率和工具a的发布效率。本发明的目的在于针对现有方案的不足,提出一种数据准备工具间多级调用解析输入文件部分内容生成临时文件的数据准备工具软件优化方法,提升数据准备工具的运行效率和发布进度。本方案示意见图3。
22.为减少离线数据准备工具ⅲ(以下简称:工具c)对输入文件中part2内容的提取的运算量,在输入文件易于拆分成独立part1和part2时,将输入文件拆分成单独的part1和part2两份输入文件;为提升离线数据准备工具ⅰ(以下简称:工具a)的发布效率,在离线数据准备工具ⅱ(以下简称:工具b)工具代码量较大不方便移植,工具c代码量较小方便移植情况下,将工具c自身的对part2处理的关键逻辑代码引入工具a。此过程中移入a工具中的c工具的功能对应处理数据部分(简称功能c)无需依赖于工具c对应开发小组发布的工具c,此过程既把b工具和c工具的功能隔开,无需采用中间调用(工具b调用工具c),同时方便工具a根据自身需要对功能c进行维护。该过程中的关键点是如何将c功能生成的数据在工具b运行中正确的时间点放入b工具的临时文件夹中而不影响工具b本身的处理过程。为解决该问题,在工具b的整个处理流程中,依然保留在相应时刻调用“工具c”,此“工具c”并不指已发布的某个版本的工具c,而是保留工具c的外部接口,改变其内在处理逻辑的一个伪装“工具c”。
23.本方法总体流程如图3所示,具体步骤包括:步骤s1、拆分工具a的输入文件,拆分成独立的part1和part2两部分输入,part1部分仍然由工具b本身的处理逻辑进行处理,part2部分由工具a中的功能c处理,提前在工具a中存储工具b的可执行文件夹下的某个文件夹中生成result2。
24.步骤s2、改变“工具c”的内部处理逻辑,由之前的解析数据生成中间文件的功能修改为将s1步骤中功能c生成的中间数据存储位置中的result2复制到工具b在调用“工具c”时所提供的输出文件路径(工具b的临时文件夹)。
25.更具体的,一种多离线工具调用生成临时文件的优化方法,该优化方法包括以下步骤:s1、拆分离线数据准备工具ⅰ的输入文件,将离线数据准备工具ⅰ的输入文件拆分
成独立的part1数据部分和part2数据部分;s2、将用于处理part2数据部分的离线数据准备工具ⅲ中用于处理part2数据部分的关键逻辑代码引入到离线数据准备工具ⅰ中,该引入的关键逻辑代码在离线数据准备工具ⅰ中称为功能模块ⅰ;需要注意的是,在处理part2数据部分的离线数据准备工具ⅲ代码量比较小,且方便移植时,可将其关键逻辑代码引入到离线数据准备工具ⅰ中。本方法适用于离线数据准备工具ⅲ代码量比较小,且方便移植时的情况。
26.s3、在离线数据准备工具ⅰ运行时且离线数据准备工具ⅰ未调用离线数据准备工具ⅱ之前,part2数据部分由功能模块ⅰ进行处理,生成供离线数据准备工具ⅱ运行时调用的中间临时数据文件result2;并将功能模块ⅰ生成的中间临时数据文件result2存储在离线数据准备工具ⅱ中的某个不会被修改的目录下;s4、重写离线数据准备工具ⅲ的功能,保持其外部接口参数不变,将其内部功能修改为:当离线数据准备工具ⅲ被离线数据准备工具ⅱ调用时,离线数据准备工具ⅲ将中间临时数据文件result2从其在离线数据准备工具ⅱ的存放目录,复制到离线数据准备工具ⅲ的输出目录中,作为伪装离线数据准备工具ⅲ的输出数据;s5、将part1数据部分作为离线数据准备工具ⅱ的输入文件,由离线数据准备工具ⅱ本身的处理逻辑进行处理,生成处理结果数据result1;s6、在离线数据准备工具ⅱ运行中,当离线数据准备工具ⅱ调用离线数据准备工具ⅲ时,生成相同的调用指令传输到伪装离线数据准备工具ⅲ中;伪装离线数据准备工具ⅲ将中间临时数据文件result2传输到伪装离线数据准备工具ⅲ的输出目录;s7、离线数据准备工具ⅱ对中间临时数据文件result2和其自身对part1部分进行处理后生成的数据result1进行逻辑运算,运算完成后生成离线数据准备工具ⅱ的输出文件。
27.进一步的,s1步骤中,具体是依据离线数据准备工具ⅰ运行时需要调用的离线数据准备工具ⅱ的输入数据要求,以及离线数据准备工具ⅱ生成文件过程中需要调用离线数据准备工具ⅲ的输入数据要求,将离线数据准备工具ⅰ的输入文件拆分成独立的part1数据部分和part2数据部分;其中part1数据部分对应为离线数据准备工具ⅱ,part2数据部分对应功能模块ⅰ。
28.更进一步的,s6步骤中,在离线数据准备工具ⅱ运行中,离线数据准备工具ⅱ会创建临时文件夹,当离线数据准备工具ⅱ调用离线数据准备工具ⅲ时,生成相同的调用指令传输到伪装离线数据准备工具ⅲ中;此过程中伪装离线数据准备工具ⅲ获取的输出参数路径为离线数据准备工具ⅱ中临时文件夹的路径;伪装离线数据准备工具ⅲ将中间临时数据文件result2复制到离线数据准备工具ⅱ的临时文件夹中。
29.更进一步的,s7步骤中,离线数据准备工具ⅱ运算完成后生成离线数据准备工具ⅱ的输出文件并清空临时文件夹中的所有文件。
30.更进一步的,s7步骤中离线数据准备工具ⅱ生成的输出文件即为离线数据准备工具ⅰ的输出。
31.本方案利用拆分输入文件形成对应功能独立输入文件的方法,降低了下级工具在输入文件中读取所需输入数据时的难度;将工具c的功能引入工具a代码逻辑处理中,工具a
因此集成了工具c功能,易于工具a对功能c的维护,而无需依赖于发布的工具c的功能,从而提升了工具a发布效率。同时在不影响工具b运行中在正确的时间点将中间文件(result2)生成到要求输出的临时文件夹,工具b采用调用“伪装工具c”的形式将已经生成好的中间数据文件复制到要求的中间文件输出目录,使得工具b在调用“工具c”生成工具b所需中间文件的处理流程毫无影响。此方案中,工具a仅依赖于工具b,而无需依赖于工具c,使得工具a的依赖性降低,大大有利于工具a的开发进度和发布进度。该方案还提升了工具a的使用场景的多用性;对于输入文件中准备了该中间数据(result2)的输入文件,该方案依然适用。工具a可以根据输入文件是part1和part2还是part1 和result2时分情况决定是否调用功能c,当输入文件类型为part1和result2时,工具a不调用功能c,工具b在调用“伪装工具c”时依然可以将已经提供的并且作为输入的“中间数据文件”result2复制到要求的输出目录(工具b的临时文件夹)中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1