一种数据处理方法和系统与流程

文档序号:12271320阅读:268来源:国知局
一种数据处理方法和系统与流程
本申请涉及移动终端
技术领域
,特别是涉及一种数据处理方法和一种数据处理系统。
背景技术
:数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。在依据数据库执行业务处理时,可能由于各种问题如服务器错误、网络抖动等问题导致请求重发,即对一个业务发起多次请求,由于对一个业务执行多次业务处理而导致业务处理失败,或导致数据库中数据出现错误。因此,目前需要本领域技术人员迫切解决的一个技术问题就是:提出一种数据处理方法和装置,以解决数据处理中出现的问题。技术实现要素:本申请实施例所要解决的技术问题是提供一种数据处理方法,以解决数据处理中出现的问题。相应的,本申请实施例还提供了一种数据处理系统,用以保证上述方法的实现及应用。为了解决上述问题,本申请实施例公开了一种数据处理方法,包括:发起对待处理业务的业务处理时,通过初始化联合主键将本次业务处理配置为初始状态;针对所述待处理业务执行对应的业务处理;当所述本次业务处理失败时,通过变更所述联合主键将本次业务处理配置为失败状态;重新发起对所述待处理业务的业务处理,直到所述待处理业务的业务处理成功。可选的,还包括:从业务请求中获取业务标识,确定所述待处理业务;所述通过初始化联合主键将本次业务处理配置为初始状态,包括:将本次业 务处理对应计数字段初始化为默认值;将所述计数字段和业务标识合并生成初始化的联合主键;依据所述初始化的联合主键将本次业务处理的状态配置为初始状态。可选的,当所述本次业务处理失败时,通过变更所述联合主键将本次业务处理配置为失败状态,包括:当所述业务处理失败时,按照预置方式对所述联合主键中计数字段进行变更,确定变更的联合主键;依据变更的联合主键将本次业务处理的状态配置为失败状态。可选的,还包括:发起对待处理业务的业务处理时,记录业务处理的发起次数作为本次业务处理的执行次数;按照预置方式对联合主键中计数字段进行变更,包括:将所述联合主键中计数字段变更为业务处理的执行次数。可选的,针对所述待处理业务执行对应的业务处理,包括:针对待处理业务在数据库中执行以下至少一项业务处理,包括:插入数据、更新数据和删除数据。可选的,还包括:在执行本次业务处理时,若其他业务请求对应确定的联合主键与本次业务处理的联合主键相同,则忽略其他业务请求。可选的,所述待处理业务包括金融业务,所述金融业务包括以下至少一项:支付业务、贷款业务、退款业务。本申请实施例还公开了一种数据处理系统,包括:初始配置模块,用于发起对待处理业务的业务处理时,通过初始化联合主键将本次业务处理配置为初始状态;业务处理模块,用于针对所述待处理业务执行对应的业务处理;结果处理模块,用于当所述本次业务处理失败时,通过变更所述联合主键将本次业务处理配置为失败状态;触发初始配置模块重新发起对所述待处理业务的业务处理,直到所述待处理业务的业务处理成功。可选的,还包括:标识获取模块,用于从业务请求中获取业务标识,确定所述待处理业务;所述初始配置模块,包括:计数字段配置子模块,用于将本次业务处理对应计数字段初始化为默认值;主键生成子模块,用于将所述计数字段和业务标识合并生成初始化的联合主键;初始状态配置子模块, 用于依据所述初始化的联合主键将本次业务处理的状态配置为初始状态。可选的,所述结果处理模块,包括:主键变更子模块,用于当所述业务处理失败时,按照预置方式对所述联合主键中计数字段进行变更,确定变更的联合主键;失败状态配置子模块,用于依据变更的联合主键将本次业务处理的状态配置为失败状态。可选的,所述初始配置模块,还用于发起对待处理业务的业务处理时,记录业务处理的发起次数作为本次业务处理的执行次数;所述主键变更子模块,用于将所述联合主键中计数字段变更为业务处理的执行次数。可选的,所述业务处理模块,用于针对待处理业务在数据库中执行以下至少一项业务处理,包括:插入数据、更新数据和删除数据。可选的,还包括:异常处理模块,用于在执行本次业务处理时,若其他业务请求对应确定的联合主键与本次业务处理的联合主键相同,则忽略其他业务请求。可选的,所述待处理业务包括金融业务,所述金融业务包括以下至少一项:支付业务、贷款业务、退款业务。与现有技术相比,本申请实施例包括以下优点:在本申请实施例中,在发起对待处理业务的业务处理时,通过初始化联合主键将本次业务处理配置为初始状态,通过初始化联合主键保证每次业务处理的唯一性,然后执行业务处理,从即使出现请求重发等问题,由于其联合主键与本次业务处理相同而不会重复执行,防止数据出错。若本次业务处理失败则通过变更所述联合主键将本次业务处理配置为失败状态,自动重新发起对所述待处理业务的业务处理,此时重新发起的业务处理配置为初始状态而后执行业务处理,直到业务处理成功,保证业务的成功执行。附图说明图1是本申请的一种数据处理方法实施例的步骤流程图;图2是本申请的另一种数据处理方法实施例的步骤流程图;图3是本申请一种数据处理系统实施例的结构框图;图4是本申请另一种数据处理系统实施例的结构框图。具体实施方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。本申请实施例的核心构思之一在于,提出一种数据处理方法,以解决数据处理中出现的问题。其中,在发起对待处理业务的业务处理时,通过初始化联合主键将本次业务处理配置为初始状态,而通过初始化联合主键保证每次业务处理的唯一性,然后执行业务处理,从即使出现请求重发等问题,由于其联合主键与本次业务处理相同而不会重复执行,防止数据出错。若本次业务处理失败则通过变更所述联合主键将本次业务处理配置为失败状态,自动重新发起对所述待处理业务的业务处理,此时重新发起的业务处理配置为初始状态而后执行业务处理,直到业务处理成功,保证业务的成功执行。实施例一参照图1,示出了本申请的一种数据处理方法实施例的步骤流程图,具体可以包括如下步骤:步骤102,发起对待处理业务的业务处理时,通过初始化联合主键将本次业务处理配置为初始状态。针对待处理业务发起相应的业务处理,即执行该业务所需的处理操作,在业务处理被执行前,可以为该待处理业务配置初始化的联合主键,该联合主键用于标识一个待处理业务的处理操作。初始化联合主键即将业务处理对应联合主键配置为初始化值,则该业务处理的状态为初始状态,可以执行业务处理。其中,初始化的联合主键具有唯一约束性,即初始化的联合主键用于唯一约束一次业务处理的执行,若存在两个业务处理对应联合主键的初始化值相同,则仅执行第一个业务处理。主键即主关键字(primarykey)是数据库表中的一个或多个字段,本实施例的联合主键包括至少两个字段,其相应字 段值用于唯一标识数据库表中的某一条记录。本实施例中,待处理业务可以依据具体应用场景确定,例如针对金融、购物等应用场景,则待处理业务为金融业务,如支付、退款等,又如针对游戏等应用场景,则待处理业务为游戏相关业务,如角色获取、充值等。步骤104,针对所述待处理业务执行对应的业务处理。将本次业务对应联合主键配置为初始化值后,可以执行相应的业务处理操作,本实施例中业务处理包括针对数据库的处理,例如在数据库中插入数据、删除数据等,可以依据待处理业务的业务需求确定。步骤106,当所述本次业务处理失败时,通过变更所述联合主键将本次业务处理配置为失败状态;重新发起对所述待处理业务的业务处理,直到所述待处理业务的业务处理成功。业务处理执行完毕后,可以确定业务处理的处理结果,其中处理结果包括成功的处理结果或失败的处理结果。若处理结果为失败即本次业务处理执行失败,即待处理业务未执行成功,因此还需要重新执行。由于本次失败的业务处理对应联合主键为初始化值,为了后续能够重新对待处理业务进行处理,因此要在本次业务处理失败时,变更联合主键的键值,从而将本次业务处理配置为失败状态。此时,系统重新发起对待待处理业务的业务处理,则对本次新发起的业务处理业务将其联合主键配置为初始化值,即重新执行上述步骤102-104的业务处理过程,直到待处理业务的业务处理成功为止。即在每次执行业务处理时都将其对应联合主键配置为初始化值,从而业务处理置为初始状态可以执行,而本次业务处理失败时,变更其联合主键的键值以标识本次业务处理为失败状态,从而针对该待处理业务发起下一次业务处理,循环执行上述联合主键配置为初始化值并执行业务处理的步骤,直到业务处理成功为止。综上,在发起对待处理业务的业务处理时,通过初始化联合主键将本次业务处理配置为初始状态,而通过初始化联合主键保证每次业务处理的唯一性,然后执行业务处理,从即使出现请求重发等问题,由于其联合主键与本 次业务处理相同而不会重复执行,防止数据出错。若本次业务处理失败则通过变更所述联合主键将本次业务处理配置为失败状态,自动重新发起对所述待处理业务的业务处理,此时重新发起的业务处理配置为初始状态而后执行业务处理,直到业务处理成功,保证业务的成功执行。实施例二在上述实施例的基础上,本实施例详细论述针对待处理业务执行业务处理的步骤。参照图2,示出了本申请的另一种数据处理方法实施例的步骤流程图。步骤202,从所述业务请求中获取业务标识,确定所述待处理业务。数据库通常用于为各种业务服务器提供数据支持,业务服务器需要执行数据库相关业务时,可以发送业务请求,依据该业务请求执行相应的数据库操作。因此可以从业务请求中获取业务标识,该业务标识用于唯一标识一个待处理业务,因此通过业务请求可以确定待处理业务。本申请实施例中,在应用于金融、购物等需要处理资金、货币的应用场景中时,所述待处理业务包括金融业务,金融业务包括以下至少一项:支付业务、贷款业务、退款业务。即在上述应用场景中可以通过数据库进行支付、退款、贷款的相关处理,如变更数据库中相关货币数据,或处理结果数据等。步骤204,发起对待处理业务的业务处理。步骤206,将本次业务处理对应计数字段初始化为默认值。步骤208,将所述计数字段和业务标识合并生成初始化的联合主键。步骤210,依据所述初始化的联合主键将本次业务处理的状态配置为初始状态。确定待处理业务后,可以发起对该待处理业务的业务处理,其中若当前业务处理失败还需要重新发起业务处理直到业务处理成功,因此每次发起待处理业务的业务请求时,可以记录业务处理的发起次数作为本次业务处理的执行次数,针对每次业务处理将其计数字段初始化为默认值,例如设置计数 字段count=0。将业务标识作为业务字段的字段值,可以由计数字段和业务字段共同构成联合主键,则联合主键的初始化值为业务标识+默认值。此时本次业务处理处于初始状态,可以执行该业务处理。例如,待处理业务对应业务处理为在数据库中插入一条数据,该待处理业务的业务标识为id=123,假设计数字段初始化为0,则将计数器默认为0,因此第一次业务处理即ORDER=1,在执行数据插入时,计数器字段的值都设置为0。则联合主键为id+count,联合主键的初始化值为123+0,如表1所示:ORDERIDCOUNTSTATUS备注11230INIT初始数据表1本申请一个可选实施例中,在执行本次业务处理时,若其他业务请求对应确定的联合主键与本次业务处理的联合主键相同,则忽略其他业务请求。由于业务处理处于初始状态,即其联合主键为初始化值时具有唯一约束性,因此若接收到其他业务请求,对其他请求对应待处理业务发起业务处理后,确定其他请求对应业务处理的联合主键的初始化值,与本次业务处理对应联合主键的初始化值相同,则由于其他请求对应业务处理的联合主键违反唯一约束性,因此忽略其他业务请求,执行本次业务处理即可。实际处理中,在执行本次业务处理时若有同样业务标识id的待处理业务要执行,或者由于网络抖动等导致的请求重发问题,新生成的业务处理对应联合主键的初始化值,与本次业务处理的联合主键的初始化值相同,即id+count违反唯一约束性,因此后生成的业务处理无法执行,从而达到数据唯一和控制幂等效果。步骤212,针对待处理业务在数据库中执行以下至少一项业务处理,包括:插入数据、更新数据和删除数据。然后在数据库中执行该待处理业务的业务处理操作,例如依据具体的业务在数据库中插入数据、更新数据库中数据,或者删除数据库中数据等。以支付业务为例,若某一用户发起支付请求,针对该支付业务确定业务 处理,即在数据库中该用户账户数据中插入一条支付记录,以及将其资金数据更新为支付后的数据等。又如贷款业务中,若某一用户请求贷款,则在该用户的账户中插入贷款记录,相应还可以插入还款计划等关联记录,以及后续还款业务的相应记录。又如针对退款业务,若某一用户请求退款成功,则在该用户的账户中插入退款记录,以及在资金数据更新为退款后的数据等。步骤214,业务处理是否成功。业务处理执行后得到相应的业务处理结果,依据业务处理结果检测业务处理是否成功。若是,即业务处理成功则执行步骤220;若否,即业务处理失败,则执行步骤216。步骤216,按照预置方式对所述联合主键中计数字段进行变更,确定变更的联合主键。步骤218,依据变更的联合主键将本次业务处理的状态配置为失败状态。当业务处理失败时,待处理业务未执行成功,需要重新执行,因此要解除本次业务处理的唯一约束性以便重新发起一次业务处理,因此本次业务处理对应联合主键进行变更,可以按照预置方式对所述联合主键中计数字段进行变更,例如将失败的业务处理对应联合主键中计数字段变更为一设定值,又如将所述联合主键中计数字段变更为业务处理的执行次数,即第一次业务处理失败对应计数字段count=1,第二次业务处理失败对应计数字段count=2,以此类推,第N次业务处理失败对应计数字段count=N。从而变更的联合主键中id+count中,count发生变更。在变更业务处理对应联合主键后,将本次业务处理的状态配置为失败状态。后续可以返回步骤202重新发起一次业务处理。如上述count=0为初始状态的例子中,若当前业务处理(ORDER=1)失败,将计数器加1即count=1,此时联合主键变更为id=123、count=1,该业务处理的状态置为失败。此时由于联合主键发生变更,因此不再具有唯一约束性,可以重新发起一次业务处理,此时ORDER=2,其对应联合主键的初 始化值仍然配置为id=123、count=0,执行该业务处理。若ORDER=2的业务处理失败,其count累加为2,即联合主键变更为:id=123、count=2,以此类推,若失败则可以通过计数器累加确定count变更后的值,则新发起的业务处理均将联合主键配置为初始化值而后执行,例如继续发起ORDER=3的业务请求执行上述步骤,如表2所示:ORDERIDCOUNTSTATUS备注11231FAILED第一条失败的数据21232FAILED第二条失败的数据31230INIT初始化表2步骤220,将本次业务处理配置为成功状态。若业务处理执行成功,则将本次业务处理配置为成功状态,后续可以向服务器反馈该业务执行成功的响应等信息。因此,本实施例中通过ID+COUNT构成联合主键,既保证业务数据唯一,也能控制业务并发和幂等处理,并且在不删除已有数据也不改变业务性质的前提下,又能重新增加新数据。需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。实施例三在上述实施例的基础上,本实施例还公开了一种数据处理系统。参照图3,示出了本申请一种数据处理系统实施例的结构框图,具体可以包括如下模块:初始配置模块302,用于发起对待处理业务的业务处理时,通过初始化 联合主键将本次业务处理配置为初始状态。业务处理模块304,用于针对所述待处理业务执行对应的业务处理。结果处理模块306,用于当所述本次业务处理失败时,通过变更所述联合主键将本次业务处理配置为失败状态;触发初始配置模块302重新发起对所述待处理业务的业务处理,直到所述待处理业务的业务处理成功。综上,在发起对待处理业务的业务处理时,通过初始化联合主键将本次业务处理配置为初始状态,而通过初始化联合主键保证每次业务处理的唯一性,然后执行业务处理,从即使出现请求重发等问题,由于其联合主键与本次业务处理相同而不会重复执行,防止数据出错。若本次业务处理失败则通过变更所述联合主键将本次业务处理配置为失败状态,自动重新发起对所述待处理业务的业务处理,此时重新发起的业务处理配置为初始状态而后执行业务处理,直到业务处理成功,保证业务的成功执行。参照图4,示出了本申请另一种数据处理系统实施例的结构框图,具体可以包括如下模块:标识获取模块408,用于从业务请求中获取业务标识,确定所述待处理业务。初始配置模块402,用于发起对待处理业务的业务处理时,通过初始化联合主键将本次业务处理配置为初始状态。业务处理模块404,用于针对所述待处理业务执行对应的业务处理。结果处理模块406,用于当所述本次业务处理失败时,通过变更所述联合主键将本次业务处理配置为失败状态;触发初始配置模块302重新发起对所述待处理业务的业务处理,直到所述待处理业务的业务处理成功。异常处理模块410,用于在执行本次业务处理时,若其他业务请求对应确定的联合主键与本次业务处理的联合主键相同,则忽略其他业务请求。所述初始配置模块402,包括:计数字段配置子模块40202,用于将本次业务处理对应计数字段初始化为默认值;主键生成子模块40204,用于将所述计数字段和业务标识合并生成初始化的联合主键;初始状态配置子模块40206,用于依据所述初始化的联合主键将本次业务处理的状态配置为初始 状态。所述结果处理模块406,包括:主键变更子模块40602,用于当所述业务处理失败时,按照预置方式对所述联合主键中计数字段进行变更,确定变更的联合主键;失败状态配置子模块40604,用于依据变更的联合主键将本次业务处理的状态配置为失败状态。所述初始配置模块402,还用于发起对待处理业务的业务处理时,记录业务处理的发起次数作为本次业务处理的执行次数;所述主键变更子模块40602,用于将所述联合主键中计数字段变更为业务处理的执行次数。所述业务处理模块404,用于针对待处理业务在数据库中执行以下至少一项业务处理,包括:插入数据、更新数据和删除数据。本实施例中,所述待处理业务包括金融业务,所述金融业务包括以下至少一项:支付业务、贷款业务、退款业务。本实施例中通过ID+COUNT构成联合主键,既保证业务数据唯一,也能控制业务并发和幂等处理,并且在不删除已有数据也不改变业务性质的前提下,又能重新增加新数据。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。在一个典型的配置中,所述计算机设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitorymedia),如调制的数据信号和载波。本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计 算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。以上对本申请所提供的一种数据处理方法和一种数据处理系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1