一种文件处理方法和装置与流程

文档序号:11276344阅读:151来源:国知局
一种文件处理方法和装置与流程
本申请涉及网络技术,特别涉及一种文件处理方法和装置。
背景技术
:在很多网络业务的业务执行过程中,均涉及到文件处理。比如,在一个理财产品应用中,如果要完成某个应用业务,在业务执行过程中,需要创建一些文件,例如创建一个业务单据或者生成一个业务数据文件等。这些文件的处理通常由一个文件系统来管理。该文件系统可以负责多个业务的文件处理,在业务执行中,文件系统可以导入一些基础文件,并结合业务执行过程中的数据处理,再生成一些新的业务文件。现有技术中,如果业务执行过程中遇到诸如网络异常、超时等原因导致业务执行中断,那么下次该业务重新执行时,文件系统需要重新导入基础文件,并在文件的使用中重新读取和解析这些文件,造成文件处理的进度较为缓慢,影响了业务的执行效率,当有多个业务都执行文件处理时,缓慢的处理进度也使得文件系统的压力较大。技术实现要素:有鉴于此,本申请提供一种文件处理方法和装置,以提高业务执行中的文件处理效率。具体地,本申请是通过如下技术方案实现的:第一方面,提供一种文件处理方法,所述方法应用于业务执行过程中的文件处理,所述文件处理的过程包括多个文件处理阶段;所述方法包括:当执行文件处理过程中的一个文件处理阶段发生处理异常时,记录与所 述文件处理阶段对应的处理异常状态标识;定期获取发生处理异常的文件处理,并根据所述处理异常状态标识,由对应的所述文件处理阶段继续文件处理过程。第二方面,提供一种文件处理装置,所述装置应用于业务执行过程中的文件处理,所述文件处理的过程包括多个文件处理阶段;所述装置包括:状态记录模块,用于当执行文件处理过程中的一个文件处理阶段发生处理异常时,记录与所述文件处理阶段对应的处理异常状态标识;文件处理模块,用于定期获取发生处理异常的文件处理,并根据处理异常状态标识,由对应的所述文件处理阶段继续文件处理过程。本申请提供的文件处理方法和装置,通过记录文件处理阶段发生处理异常时对应的处理异常状态标识,并根据该标识继续文件处理,使得即使存在由于网络异常导致中断的文件处理,文件系统也可以通过定期恢复机制,由发生异常的阶段处继续处理该任务,不用再重新从头开始;并且,该定期恢复机制使得文件系统能够自动定期执行未完成任务的继续执行,促使该任务尽快的完成处理,从而提高了业务执行中的文件处理效率。附图说明图1是本申请一示例性实施例示出的一种文件处理方法的流程;图2是本申请一示例性实施例示出的一种业务执行顺序示意图;图3是本申请一示例性实施例示出的一种业务状态转换示意图;图4是本申请一示例性实施例示出的一种文件处理装置的结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一 些方面相一致的装置和方法的例子。网络业务的业务执行过程中,涉及到文件处理,例如创建一个业务单据或者生成一个业务数据文件等。该文件处理可以由一个文件系统来执行,并且该文件处理的过程可以包括多个文件处理阶段,比如,创建业务单的阶段、执行业务逻辑的阶段、业务数据合并的阶段、结果文件生成的阶段等。在每一个文件处理阶段,都可能遇到一些处理异常的情况,比如,诸如网络中断、网络超时等网络异常,此时就导致文件处理的中断。如果对于这些文件处理中断导致业务无法完整执行的例子,都要再重头开始重新执行一遍,将会使得文件处理缓慢,也使得业务无法快速完成,并且文件系统通常会管理多个业务的文件处理,如果多个业务的文件处理进度都较为缓慢,也使得文件系统的压力剧增。基于此,本申请实施例提供了一种文件处理方法,旨在提高业务执行中的文件处理效率,使得即使发生文件处理的中断,也尽早的执行完成本次文件处理的过程,保证业务的完整执行。在本申请的文件处理方法中,可以对文件处理过程中的各个文件处理阶段,都设置一个对应的执行成功标识。如果在执行过程中未发生异常,顺利执行,则将该文件处理对应的业务记录一个状态标识,即上述的执行成功标识,不同文件处理阶段完成时,对应的执行成功标识是不同的,使得通过该执行成功标识就可以得知该业务的文件处理进行到了哪个阶段。例如,如下的表1示例了一种记录方式,仅是示意,具体的记录表格可以根据实际的业务情况进行设定。在表1中,可以是假设某个业务的文件处理包括了a、b、c、d四个阶段,目前的阶段是进行到了b阶段,而括号中的a、c、d是表示其他可能的情况,比如也可以是执行到c阶段或d阶段。表1状态标识的记录业务标识执行成功标识status****b(a、c、d)当文件处理阶段成功的顺序执行时,可以记录上述表1的执行成功标识; 当文件处理阶段执行失败时,比如发生了网络异常导致处理中断,也可以记录一个与该文件处理阶段对应的处理异常状态标识。这样当下次再继续执行该业务时,就可以根据处理异常状态标识,由对应的文件处理阶段继续文件处理过程,而不用再重头开始再执行一次文件处理的过程,从而可以提高文件处理的效率。该过程可以参见图1所示的步骤。如下通过一个例子,来说明本申请的文件处理方法。以某个理财产品应用的业务执行为例,假设要执行理财产品的赎回业务。该赎回业务的执行中,文件系统需要执行的文件处理包括:导入一些基础文件,该基础文件可以是与第三方交互得到的数据文件,并且文件系统调用外围的业务系统,执行业务处理逻辑,在执行过程中结合数据文件,再生成一些新的业务文件。例如,该文件处理过程可以分为五个文件处理阶段,包括:第一阶段:导入基础文件,进行解析文件和校验。如果该阶段成功执行,可以设置对应的执行成功标识是p。第二阶段:将基础文件进行文件拆分,将所执行的业务拆分成多个子业务,各个子业务要分别执行赎回逻辑。如果该拆分阶段成功执行,可以设置对应的执行成功标识是s。第三阶段:对于各个子业务,分别执行赎回逻辑。如果该阶段成功执行,可以设置对应的执行成功标识是m。第四阶段:对完成赎回逻辑的各个子业务进行数据合并处理,如果该阶段成功执行,可以设置对应的执行成功标识是g。第五阶段:在数据处理结束后,生成本次赎回业务的结果文件。如果该阶段成功执行,可以设置对应的执行成功标识是f。如果一个赎回业务完整执行,那么上述的五个阶段将顺序执行,相应的,在各个阶段依次执行的过程中,执行成功标识也依次变更为p-s-m-g-f。参见图2的示例,需要说明的是,当拆分成多个子业务后,可以为每一个子业务也分别建立对应的状态标识,比如,各个子业务可以称为业务分片,当该业务分片的赎回逻辑成功执行后,该子业务对应的执行成功标识也设置为m。 而包括该各个子业务的业务整体的状态取决于各个子业务的状态,比如,若所有的子业务都成功执行,则对应的整体状态为m,如图2所示。而如果其中包括执行失败的子业务,那业务整体状态也处于失败状态,不能标识m。上述对文件处理阶段执行成功时的状态标识进行了设定,当文件处理阶段未成功执行时,比如超时、网络中断等,导致一个文件处理阶段发生处理异常,本实施例可以设定这种网络异常时的对应状态为d,d表示该文件处理阶段出现异常,未成功执行,且失败的原因是网络异常。还有一种文件处理阶段的失败原因,不是网络异常,而是解析文件错误,或者参数校验失败等,这种异常通常可能是由文件本身引起,文件本身可能出现了错误,本实施例可以用文件错误标识a来表示。上面的实施例中描述了对文件处理阶段的一些状态标识的设定,比如,p、s、m、g、f、d、a,文件系统可以负责多个业务的文件处理,每一个业务的文件处理都可以包括多个文件处理阶段,尽管不同的业务,其文件处理包括的文件处理阶段的段数或逻辑可能不同,但是可以采用如上述例子类似的方式来设定各个阶段的状态,包括执行成功时的状态和失败时的状态。从文件系统来看,各个业务的执行,可能分别执行到了一定的文件处理阶段,并且以对应的状态标识表示了当前到达的阶段;那么文件系统可以根据这些状态标识,由对应的文件处理阶段继续处理,完成下一个文件处理阶段时,即将状态标识切换为下一个阶段对应的执行成功标识。也就是说,文件系统在执行文件处理时,就根据记录的状态标识进行处理即可。如果文件处理均能正常执行,那么就按照p-s-m-g-f的顺序,直至完成整个处理。而如果执行过程中发生了处理异常,则要执行向处理异常状态标识d或者文件错误标识a的转换。请结合图3来看,文件系统对于每个任务进行的状态转换,该任务可以是一个业务或者一个子业务,包括从成功状态向异常或错误状态的转换。例如,对于p状态的任务继续处理时,当文件系统wx解析文件时发现文件核对有误,可以将该任务的状态由p更改为a。或者,当文件系统wx 调用业务系统yx处理赎回逻辑,即拆分文件创建对应每个子业务时,如果出现网络异常,则可以将p转换成d。例如,对于s状态的任务继续处理时,当文件系统wx调用业务系统yx,业务系统yx调用另一个业务系统cx,业务系统cx调用再一个业务系统rx将资金发放到用户账户完成,wx根据返回true时将任务状态由s更新为m。而wx调用业务系统yx处理各个子业务的赎回业务逻辑时,业务系统yx出现网络异常或者系统异常,wx将任务状态由s变更为d。wx调用业务系统yx处理赎回业务时,业务系统yx调用业务系统cx,业务系统cx执行参数校验,校验失败时返回false,wx需将任务由s状态变更为a。需要说明的是,这里执行的是各个子业务的赎回逻辑,相应的,状态的变化是各个子业务对应的状态更新为m、或者d、或者a。结合图2来看,如果其中的所有子业务的状态均为m,则业务整体达到m阶段,如果其中包含d或者a阶段的子业务,那么业务整体的状态可以为d或a。例如,对于m状态的任务继续处理时,wx监控到流水任务数据都变为m时,会启动线程调用业务系统yx获取所有的赎回记录,进行数据合并处理,成功执行后将流水状态变更为g,准备生成赎回结果文件。wx执行m状态操作时,业务系统yx返回异常或者出现网络中断,会将流水状态转变为d。wx执行m状态操作时,业务系统yx处理赎回逻辑,当返回false时,会将流水状态转变为a。例如,对于g状态的任务继续处理时,wx反查赎回支付业务单表的状态为成功的状态,wx将赎回结果数据捞取生成结果文件,任务流水表中状态由g更新为f状态。wx执行g状态生成赎回结果文件时,业务系统yx返回异常或者出现网络中断,会将流水状态转变为d。wx执行g状态生成赎回结果文件时,业务系统yx处理赎回文件生成逻辑,当返回false时,会将流水状态转变为a。经过上述的处理,文件系统中处理的多个任务中,部分任务成功执行, 状态已经更新为执行成功标识,在下一次处理该任务时,根据该执行成功标识继续下一个阶段的处理即可;而对于状态为d或者a的任务,可以区别对待,其中的a状态的任务,由于错误原因为文件本身错误,可以等待修正,暂时停止本次文件处理。对于状态为d的任务,如果原因为网络故障,那么在过段时间后,可能会出现网络恢复,因此文件系统可以采用恢复机制,比如,每间隔一定时间,对于状态为d,且最后处理时间在5分钟之前的任务,文件系统wx可以再调用业务系统yx进行赎回,如果此时网络已经恢复,那么赎回将成功,直至将该任务成功执行,将d更新为f。比如,假设对于上述例子中的理财产品的赎回业务,当执行到对各个子业务执行赎回逻辑时,如果部分子业务的执行逻辑失败,且原因是网络异常,那么该子业务的状态将设置为d。文件系统定期恢复时,将该子任务捞取,重新对该子任务进行一次赎回逻辑的执行,如果网络恢复正常,则可以成功将子任务的状态由d更改为m。而如果是现有技术,文件系统需要重新执行一次基础文件的导入和解析,文件的拆分,再执行子业务的赎回等,较为缓慢,采用本实施例的方法后,可以根据子任务的状态,直接执行子任务的赎回即可,相当于是在m阶段执行时失败,则重新执行m阶段即可,不用再执行前面的p和s阶段。当然,文件系统也可以记录d状态是由哪个状态转换所至,以可以从异常的阶段开始继续处理。采用本申请实施例的文件处理方法后,在文件系统中,即使存在由于网络异常导致中断的文件处理,文件系统也可以通过定期恢复机制,对于d状态的任务,由发生异常的阶段处继续处理该任务,不用再重新从头开始;并且,该定期恢复机制使得文件系统能够自动定期执行未完成任务的继续执行,促使该任务尽快的完成处理,从而使得文件处理的效率得到提高。也正是由于文件处理效率的提高,使得业务能够尽快的完整执行,用户体验更好。为了实现上述的文件处理方法,本申请还提供一种文件处理装置,如图4所示,该装置可以包括:状态记录模块41和文件处理模块42。状态记录模块41,用于当执行文件处理过程中的一个文件处理阶段发生 处理异常时,记录与所述文件处理阶段对应的处理异常状态标识;文件处理模块42,用于定期获取发生处理异常的文件处理,并根据处理异常状态标识,由对应的所述文件处理阶段继续文件处理过程。在一个例子中,所述处理异常,包括:出现网络异常。在一个例子中,状态记录模块41,用于在子业务的执行过程中发生处理异常时,则对应记录所述子业务的处理异常状态标识,所述子业务是在执行文件处理过程中,将所执行的业务拆分成的多个子业务,所述文件处理阶段为分别执行各个子业务的阶段。文件处理模块42,用于在下次执行本业务时,根据所述处理异常状态标识,继续所述子业务的执行。在一个例子中,状态记录模块41,还用于在执行文件处理过程中的一个文件处理阶段发生解析文件错误、或者参数校验错误时,则记录文件错误标识。文件处理模块42,还用于根据所述文件错误标识,停止本次文件处理。在一个例子中,状态记录模块41,还用于在文件处理过程中的一个文件处理阶段执行成功时,则记录与所述文件处理阶段对应的执行成功标识。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1