本申请公开了一种业务处理的方法及装置,所述业务处理方法,应用在用于对数据进行处理的系统中,所述方法包括:获得第一业务;执行为所述第一业务设置对应的第一标识信息的操作;判断是否成功设置了所述第一标识信息;在成功设置了所述第一标识信息时,执行所述第一业务,其中,在成功设置了所述第一标识信息时,表明所述系统没有与所述第一业务关系为相同或互斥的第二业务正在被执行。
【技术实现步骤摘要】
一种业务处理的方法及装置
本申请涉及数据处理领域,尤其涉及一种业务处理方法及装置。
技术介绍
业务幂等性包括两层含义:(1)同一业务不能重复做成功,比如,在付款时,不能重复付款;(2)业务规则互斥的业务不能同时成功,比如,在某一时刻,用户点击了付款,但是钱从用户的账户上转出后,并未显示付款成功,所以系统会有一个退款过程,那么这个付款和退款过程不能同时成功。在现有技术中,常用的保持业务幂等性的方法,主要有下面两种:(1)将所有的数据处理过程都利用数据库完成,利用数据库的事务特性来控制并发及互斥业务的执行,使其不能同时成功。(2)开发分布式事务控制框架,并且,对于非事务性的缓存重写事务注册器,从而使得非事务性的缓存带有事务性的特点,进而使其能够达到与第(1)种方案控制业务幂等性相同的技术效果。然而,在实现本申请实施例的过程中,申请人发现现有技术至少存在如下缺点:(1)关于现有技术(1),由于所有的数据都采用数据库进行储存,但是,对于海量数据的高并发、高效率存储与访问以及高扩展、高可靠性的处理要求,都是关系数据库难以达到的,故而存在着对于海量数据处理过程无法实现幂等性的技术问题;(2)关于现有技术(2),由于需要开发分布式系统框架,故而存在着技术难度大、开发成本高并且会增加业务复杂性的技术问题。
技术实现思路
本申请提供一种业务处理的方法及装置,用以解决现有技术中存在的实现业务幂等性的过程技术难度大技术问题。本申请通过本申请中的实施例,提供如下技术方案:一方面,本申请通过本申请中的一个实施例,提供如下技术方案:一种业务处理的方法,应用在用于对数据进行处理的系统中,所述方法包括:获得第一业务;执行为所述第一业务设置对应的第一标识信息的操作;判断是否成功设置了所述第一标识信息;在成功设置了所述第一标识信息时,执行所述第一业务,其中,在成功设置了所述第一标识信息时,表明所述系统没有与所述第一业务关系为相同或互斥的第二业务正在被执行。另一方面,本申请通过本申请的另一实施例,提供如下技术方案:一种业务处理的装置,应用在用于对数据进行处理的系统中,所述装置包括:获得单元:用于获得第一业务;设置单元:用于执行为所述第一业务设置对应的第一标识信息的操作;判断单元:用于判断是否成功设置了所述第一标识信息;执行单元:用于在成功设置了所述第一标识信息时,执行所述第一业务,其中,在成功设置了所述第一标识信息时,表明所述系统没有与所述第一业务关系为相同或互斥的第二业务正在被执行。本申请提供的一个或多个技术方案,至少具有如下技术效果或优点:本申请实施例在获得第一业务后,由于先执行为所述第一业务设置对应的第一标识信息的操作;然后判断是否成功设置了所述第一标识信息;在成功设置了所述第一标识信息时,才执行所述第一业务;所以,保证在系统中已经存在与所述第一业务关系为相同或互斥的第二业务时,第一业务不会被执行,进而有效的达到了采用较为简便的方式即可实现关系为相同或互斥的业务幂等性的技术效果。附图说明图1为本申请实施例一中一种业务处理方法的步骤示意图;图2为本申请实施例二中同一商品的多次付款业务并发执行的处理步骤示意图;图3为本申请实施例三中服务器对于同一产品的付款业务和付款失败资金退回业务并发执行时的处理流程图;图4为本申请实施例四中一种业务处理的装置的方框图。具体实施方式为实现本申请目的,本申请实施例提出一种业务处理的方法和装置,所述方法包括:在执行第一业务前,先给所述第一业务设置一对应的第一标识信息,如果能够成功设置第一标识信息,表明系统中没有与所述第一业务关系为相同或互斥的业务正在被执行,故而可以执行第一业务,而如果不能成功设置第一标识信息,那么说明系统中存在与所述第一业务关系为相同或互斥的第二业务正在被执行,故而,也就暂停执行第一业务。由于,这里只需要将第一业务对应的标识信息插入一数据库中的公共信息表,而对于被处理的数据,不需要数据库来存储,也不用开发分布式数据库框架,使非事务性的缓存带有事务性,就能实现第一业务的幂等性的技术效果,有效克服了现有技术中对于保持业务幂等性所采用的技术方案要么对于大批量的数据没法实现、要么实现较为复杂的技术问题。下面结合说明书附图对本申请实施例的方案进行详细描述。实施例一本申请实施例应用在一数据处理的系统中,所述系统包含客户端、网络购物平台和服务器,本申请中的业务处理主要是基于服务器对客户端发送至网络购物平台的业务进行处理。如图1所示,其为本申请实施例一中一种业务处理的方法步骤示意图,所述方法包括如下步骤:S101:获得第一业务;在具体实施过程中,所述第一业务可以是付款业务、付款失败资金退回业务、修改资费业务等。比如,客户端A需要购买B产品,先通过账号和密码的方式登录到网络购物平台,在确定购买商品B时,便选择网银付款或者支付宝付款的方式进行付款,进行客户端会产生一付款请求,服务端接收到所述付款请求时,进而产生一个与所述付款请求对应的网银付款业务。而客户端A在发出所述付款请求后,可能钱从网银或支付宝上汇出了,但是因为系统故障,或是其他原因,并未产生对应的付款成功标记,这必然导致BUG,故而服务器会对应的产生一个付款失败资金退回业务。在客户端A购买B产品后,可能向客户端B,也就是B产品的店主提出修改资费,在协商成功后,客户端B会向服务器提出一个修改资费请求,进而,服务器产生一个修改资费业务。业务幂等性指的就是第一业务或者是与第一业务互斥的业务只能成功一次。例如,用户通过网络购物平台的支付宝提供的支付工具(比如网银、信用卡等)做支付业务,会做两个动作:(1)充值:也就是服务器将网银的钱充值到交易买家的支付宝账户中;(2)付款:也就是服务器将充值的钱转账给卖家的支付宝账户。对用户而言只有一个付款动作,但是支付宝内部实际上是充值+支付两个动作,当用户充值成功,但是付款失败的情况下,服务器需要将钱退回到用户的银行卡,这里边就需要控制一个逻辑用户的付款动作与充退动作不能同时成功——付款成功钱会打给卖家、充退成功钱会退给买家,如果同时成功,用户就会在不付钱的情况下将东西买到手,而实际付款的人会是公用的资金池,即可能是用用户A的钱来给用户B付了款。故而在服务器获得第一业务后,会基于如下几种情况,来判断是否执行第一业务。(1)在所述数据处理系统内,已经有与第一业务相同或互斥的业务执行成功。在所述数据处理系统中,每一业务执行成功,服务器都会于一数据表中写下一执行成功的标识信息,该信息为永久标识信息,并且处于服务器可知状态,故而只要于该数据表中查看是否存在与第一业务对应的执行成功的标识信息,即可得知是否有与第一业务相同或互斥的第二业务执行成功了。如果有与第一业务相同或互斥的第二业务执行成功,那么删除所述第一业务。比如,如果第一业务是对商品B付款业务,如果在所述数据表中已经有商品B的执行成功的标志信息,也就是商品B的付款业务已经执行成功,自然不用再次执行付款业务,故而删除付款业务;或者,如果在所述数据表中已经有商品B的付款失败资金回退业务执行成功的标志信息,表示付款并未成功,故而为了防止其执行成功,也删除付款业务。(2)在所述数据处理系统中,没有与第一业务相同或互斥的第二业务执行成功。也就是所述数据表中没有与第一业务相同或本文档来自技高网...
【技术保护点】
一种业务处理的方法,应用在用于对数据进行处理的系统中,其特征在于,所述方法包括:获得第一业务;执行为所述第一业务设置对应的第一标识信息的操作;判断是否成功设置了所述第一标识信息;在成功设置了所述第一标识信息时,执行所述第一业务,其中,在成功设置了所述第一标识信息时,表明所述系统没有与所述第一业务关系为相同或互斥的第二业务正在被执行。
【技术特征摘要】
1.一种业务处理的方法,应用在用于对数据进行处理的系统中,其特征在于,所述方法包括:服务器获得第一业务;所述第一业务为客户端发送至网络购物平台的业务;判断数据表中是否包含所述第一业务对应的执行成功的标识,如果所述数据表不存在所述执行成功的标识,执行为所述第一业务设置对应的第一标识信息的操作,具体为:将所述第一标识信息插入一公共信息表;判断是否成功设置了所述第一标识信息;在成功设置了所述第一标识信息时,执行所述第一业务,其中,在成功设置了所述第一标识信息时,表明所述系统没有与所述第一业务关系为相同或互斥的第二业务正在被执行;获得第一执行结果,所述第一执行结果用来表明执行所述第一业务是否成功;在所述第一执行结果表明执行所述第一业务成功时,于所述数据表中,为所述第一业务设置所述执行成功的标识;在所述第一业务执行成功后,从公共信息表中删除对应的第一标识信息;在没有成功设置所述第一标识信息时,获得一第二执行结果,其中,所述第二执行结果用来表明执行与所述第一业务关系为相同或互斥的第二业务是否成功;在所述第二执行结果表明执行所述第二业务没有成功时,执行所述第一业务;在所述第二执行结果表明执行所述第二业务成功时,删除所述第一业务。2.如权利要求1所述的方法,其特征在于,在判断所述数据表中是否包含所述执行成功的标识之后,所述方法还包括:如果所述数据表中存在所述执行成功的标识,删除所述第一业务。3...
【专利技术属性】
技术研发人员:吴鹏,陈利剑,张敏,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。