CN111899018A - 订单数据处理方法、装置、服务器及存储介质 - Google Patents
订单数据处理方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN111899018A CN111899018A CN202010718896.2A CN202010718896A CN111899018A CN 111899018 A CN111899018 A CN 111899018A CN 202010718896 A CN202010718896 A CN 202010718896A CN 111899018 A CN111899018 A CN 111899018A
- Authority
- CN
- China
- Prior art keywords
- request
- service
- state
- services
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及区块链技术,提供一种订单数据处理方法,所述方法包括:当接收到针对目标订单的处理请求时,确定处理请求所对应的多个服务;根据请求参数,生成多个请求标识;根据多个请求标识,从多个服务中确定未被执行的目标服务;确定与非固定数据对应的责任链;异步调用责任链以及异步执行除了非固定数据的计算服务之外的目标服务,获得返回参数;若返回参数所携带的待修改状态合法,将目标订单的状态修改为待修改状态。订单数据可存储于区块链节点中。本发明还提供一种订单数据处理装置、服务器及存储介质。本发明能确保订单系统的可用性。此外,本发明还可应用于宏观经济领域,订单数据是宏观经济研究分析的重要指标/指数。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种订单数据处理方法、装置、服务器及存储介质。
背景技术
目前,随着计算机技术的发展,可以通过订单系统在网上购买某种服务的使用权限(比如云存储等),订单数据已经是宏观经济研究分析的重要指标/指数,但在实践中发现,订单系统的各个服务之间互相关联(比如,订单支付服务需要获取订单创建服务的生成订单的信息,然后执行逻辑操作,通知服务需要获取订单的状态信息,订单的状态信息会被订单支付服务以及订单创建服务修改等),导致了订单系统的各个服务之间的依赖性强,一个服务的不可用可能导致整个系统不可用,而且当网络异常或者硬件异常时,数据容易出错。
因此,如何确保订单系统的可用性,以保证宏观经济的正常研究分析是一个亟需解决的技术问题。
发明内容
鉴于以上内容,有必要提供一种订单数据处理方法、装置、服务器及存储介质,能够确保订单系统的可用性。
本发明的第一方面提供一种订单数据处理方法,所述订单数据处理方法包括:
当接收到针对目标订单的处理请求时,确定所述处理请求所对应的多个服务,其中,所述处理请求携带有请求参数;
根据所述请求参数,生成多个请求标识,其中,所述多个服务与所述多个请求标识一一对应;
根据所述多个请求标识,从所述多个服务中确定未被执行的目标服务;
若所述目标服务中包含有非固定数据的计算服务,确定与所述非固定数据对应的责任链,其中,所述责任链由多个侧链对象组成,每个侧链对象包含有实现所述计算服务的类,除了在所述责任链最末位置的末端侧链对象,每个侧链对象包含有用于指向下一个侧链对象的指针;
异步调用所述责任链以及异步执行除了所述非固定数据的计算服务之外的目标服务,获得返回参数;
判断所述返回参数所携带的待修改状态是否合法;
若所述返回参数所携带的待修改状态合法,将所述目标订单的状态修改为所述待修改状态。
在一种可能的实现方式中,所述根据所述请求参数,生成多个请求标识包括:
获取请求记录,其中,所述请求记录保存有所有历史请求的历史请求参数以及历史请求标识;
判断所述请求记录中是否有与所述请求参数匹配的历史请求标识;
若所述请求记录中没有与所述请求参数匹配的历史请求标识,根据所述多个服务中每个服务的唯一标识以及所述请求参数,生成多个请求标识。
在一种可能的实现方式中,所述根据所述多个请求标识,从所述多个服务中确定未被执行的目标服务包括:
根据所述多个请求标识,确定所述多个服务的服务状态;
从所述多个服务中,将所述服务状态为未执行的服务确定为所述目标服务。
在一种可能的实现方式中,所述异步调用所述责任链以及异步执行除了所述非固定数据的计算服务之外的目标服务,获得返回参数之后,以及所述判断所述返回参数所携带的待修改状态是否合法之前,所述订单数据处理方法还包括:
将所述目标服务的服务状态修改为已执行;
建立所述目标服务的请求标识与所述目标服务的服务状态的关联并保存。
在一种可能的实现方式中,所述判断所述返回参数所携带的待修改状态是否合法包括:
获取所述目标订单的当前状态;
根据所述当前状态,确定所述目标订单的合法状态;
判断所述返回参数所携带的待修改状态与所述合法修改状态是否一致;
若所述返回参数所携带的待修改状态与所述合法修改状态一致,确定所述返回参数所携带的待修改状态合法;或
若所述返回参数所携带的待修改状态与所述合法修改状态不一致,确定所述返回参数所携带的待修改状态非法。
在一种可能的实现方式中,所述多个服务包括通知服务,所述订单数据处理方法还包括:
对所述通知服务进行监测;
当监测到通知服务向外部网络发送数据包时,丢弃所述数据包。
在一种可能的实现方式中,所述多个服务包括支付服务,所述订单数据处理方法还包括:
对所述支付服务进行监测;
当监测到存在支付请求指向所述支付服务时,对所述支付请求进行拦截。
本发明的第二方面提供一种订单数据处理装置,所述订单数据处理装置包括:
确定模块,用于当接收到针对目标订单的处理请求时,确定所述处理请求所对应的多个服务,其中,所述处理请求携带有请求参数;
生成模块,用于根据所述请求参数,生成多个请求标识,其中,所述多个服务与所述多个请求标识一一对应;
所述确定模块,还用于根据所述多个请求标识,从所述多个服务中确定未被执行的目标服务;
所述确定模块,还用于若所述目标服务中包含有非固定数据的计算服务,确定与所述非固定数据对应的责任链,其中,所述责任链由多个侧链对象组成,每个侧链对象包含有实现所述计算服务的类,除了在所述责任链最末位置的末端侧链对象,每个侧链对象包含有用于指向下一个侧链对象的指针;
调用模块,用于异步调用所述责任链以及异步执行除了所述非固定数据的计算服务之外的目标服务,获得返回参数;
判断模块,用于判断所述返回参数所携带的待修改状态是否合法;
修改模块,用于若所述返回参数所携带的待修改状态合法,将所述目标订单的状态修改为所述待修改状态。
本发明的第三方面提供一种服务器,所述服务器包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的订单数据处理方法。
本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的订单数据处理方法。
由以上技术方案,本发明中,可以通过建立请求标识的形式来确定可用服务(已被执行)以及暂时不可用服务(未被执行),单独重试暂时不可用服务,可以避免因网络波动等异常引发的系统不可用。通过责任链实现非固定数据的计算服务,能够避免前端数据被篡改的不安全性,提高了系统的可拓展性以及可维护性。同时,服务的调用采用异步的形式,可以同时执行多个服务,提高系统性能以及数据吞吐量,且通过状态修改校验机制,确保重要数据在多个服务被调用的时候不出错,提高了系统的容错性,确保了系统的可用性。
附图说明
图1是本发明公开的一种订单数据处理方法的较佳实施例的流程图。
图2是本发明公开的一种订单数据处理装置的较佳实施例的功能模块图。
图3是本发明实现订单数据处理方法的较佳实施例的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
本发明实施例的订单数据处理方法应用在服务器中,也可以应用在服务器和通过网络与所述服务器进行连接的电子设备所构成的硬件环境中,由服务器和电子设备共同执行。网络包括但不限于:广域网、城域网或局域网。
其中,服务器可以是指能对网络中其它设备(如电子设备)提供服务的计算机系统。如果一个个人电脑能够对外提供文件传输协议(File Transfer Protocol,简称FTP)服务,也可以叫服务器。从狭义范围上讲,服务器专指某些高性能计算机,能通过网络,对外提供服务,其相对于普通的个人电脑来说,稳定性、安全性、性能等方面都要求更高,因此在CPU、芯片组、内存、磁盘系统、网络等硬件和普通的个人电脑有所不同。
所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述电子设备还可包括网络设备和/或用户设备。其中,所述网络设备包括但不限于单个网络设备、多个网络设备组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络设备构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。所述用户设备包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理PDA等。
请参见图1,图1是本发明公开的一种订单数据处理方法的较佳实施例的流程图。其中,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。所述订单数据处理方法的执行主体可以是服务器。
S11、当接收到针对目标订单的处理请求时,确定所述处理请求所对应的多个服务,其中,所述处理请求携带有请求参数。
本发明实施例中,一个处理请求可以包括多个服务,比如,订单创建请求可能包括,订单查询服务,订单校验服务,订单创建服务,订单状态存储服务等。不同的服务对应不同的请求参数,所述处理请求可能包括由多个服务的请求参数,可以根据所述请求参数的特殊字符、接口标识以及参数类型等来确定对应的服务。
此外,订单数据是宏观经济研究分析的重要指标/指数。宏观经济即宏观层面的国民经济,包括一国国民经济总量、国民经济构成(主要分为GDP部门与非GDP部门)、产业发展阶段与产业结构、经济发展程度(人类发展指数、社会发展指数、社会福利指数、幸福指数)。随着科技的发展,网络购物逐渐成为大多数人生活的一部分。网络购物的订单数据也就成为了宏观经济研究分析的重要指标/指数。
S12、根据所述请求参数,生成多个请求标识,其中,所述多个服务与所述多个请求标识一一对应。
本发明实施例中,可以对所述请求参数进行加密,获得唯一的请求标识,也可以按照具体业务需求,生成唯一的字符串作为请求标识。
具体的,所述根据所述请求参数,生成多个请求标识包括:
获取请求记录,其中,所述请求记录保存有所有历史请求的历史请求参数以及历史请求标识;
判断所述请求记录中是否有与所述请求参数匹配的历史请求标识;
若所述请求记录中没有与所述请求参数匹配的历史请求标识,根据所述多个服务中每个服务的唯一标识以及所述请求参数,生成多个请求标识。
在该可选的实施方式中,可以将所有历史请求的历史请求参数以及历史请求标识保存在请求记录中,在生成请求标识时,需要查看历史请求记录,判断所述请求记录中是否有与所述请求参数匹配的历史请求标识,可以避免因网络波动等原因,为相同服务的相同参数生成不同的请求标识。确保请求标识的唯一性。
S13、根据所述多个请求标识,从所述多个服务中确定未被执行的目标服务。
具体的,所述根据所述多个请求标识,从所述多个服务中确定未被执行的目标服务包括:
根据所述多个请求标识,确定所述多个服务的服务状态;
从所述多个服务中,将所述服务状态为未执行的服务确定为所述目标服务。
在该可选的实施方式中,可以为每个服务预先建立请求标识与服务状态的关联并保存在数据库中,可以通过请求标识去数据库中查询某一个服务的服务状态,从而可以确定该服务是否已经被执行过了。可以根据请求标识,找出未被执行的目标服务(包括了没有被成功调用的服务),能够避免重复调用已经执行过的服务,保障了数据处理的准确性。因为一个处理请求可能会重复调用某些服务,比如因为网络延迟等情况,导致某个服务调用超时而失败了,系统可以在规定时间内重新调用这个服务,同时,也会存在某些服务被调用成功了的情况,被调用成功了的服务的服务状态为已执行,需要避免重复调用已经执行了的服务而导致数据处理出错误(比如多次付款)的情况。
S14、若所述目标服务中包含有非固定数据的计算服务,确定与所述非固定数据对应的责任链,其中,所述责任链由多个侧链对象组成,每个侧链对象包含有实现所述计算服务的类,除了在所述责任链最末位置的末端侧链对象,每个侧链对象包含有用于指向下一个侧链对象的指针。
本发明实施例中,在涉及非固定数据的计算服务时,比如订单中价格计算,一类物品可以对应多个不同的价格,可以为每个价格创建一个侧链对象,每个侧链对象中可以有多个具体的实现类(用于实现所述计算服务的类),比如判断所述用户是否为目标用户群体(比如学生),若是,返回对应的价格,若不是,可以通过指针,将参数传给下一个侧链对象进行处理。能够避免前端数据被篡改的不安全性,同时,若是有新的计算规则,添加一个侧链对象即可,提高了可拓展性以及可维护性。
S15、异步调用所述责任链以及异步执行除了所述非固定数据的计算服务之外的目标服务,获得返回参数。
本发明实施例中,通过异步的方式执行服务,不需要等待其他服务执行完毕再去执行所述目标服务,可以同时处理多个服务,提高系统的运行速度,以提高系统性能,比如发送支付通知结果的服务被执行时,可以直接去存储由支付通知结果信息的数据库中查询,然后根据查询结果去执行服务,不需要等待其他服务的执行。如果在某一个环节的服务中断了,订单状态依旧会在数据库中保存,一旦服务恢复,订单会继续处理,提高了系统的容错性能。
作为一种可选的实施方式,所述异步调用所述责任链以及异步执行除了所述非固定数据的计算服务之外的目标服务,获得返回参数之后,以及所述判断所述返回参数所携带的待修改状态是否合法之前,所述方法还包括:
将所述目标服务的服务状态修改为已执行;
建立所述目标服务的请求标识与所述目标服务的服务状态的关联并保存。
在该可选的实施方式中,当所述目标服务被成功执行时,需要将所述目标服务的服务状态修改为已执行,建立所述目标服务的请求标识与所述目标服务的服务状态的关联并保存至数据库中。
S16、判断所述返回参数所携带的待修改状态是否合法,若是,执行步骤S17,若否,结束本流程。
具体的,所述判断所述返回参数所携带的待修改状态是否合法包括:
获取所述目标订单的当前状态;
根据所述当前状态,确定所述目标订单的合法状态;
判断所述返回参数所携带的待修改状态与所述合法修改状态是否一致;
若所述返回参数所携带的待修改状态与所述合法修改状态一致,确定所述返回参数所携带的待修改状态合法;或
若所述返回参数所携带的待修改状态与所述合法修改状态不一致,确定所述返回参数所携带的待修改状态非法。
在该可选的实施方式中,可以设置一个订单状态模板,即规定订单状态的流程,比如规定未付款状态的下一个状态是已付款,然后接着是已出货。若所述目标订单的当前状态是已付款,则可以确定所述目标订单的下一个状态(所述合法状态)是已出货,不能跳到未付款的状态。对于一个业务实体(订单),可能多次调用修改服务,能确保业务实体的状态保持不变或者合法修改,保障了重要数据在处理过程中不会被随意更改,提高了数据被处理的准确性。
S17、将所述目标订单的状态修改为所述待修改状态。
本发明实施例中,在对订单的状态进行修改时,需要确定返回参数所携带的待修改状态合法后才进行修改,确定订单的状态数据的准确性。
作为一种可选的实施方式,所述方法还包括:
当接收到针对订单支付方式的新增请求时,确定与所述新增请求对应的支付方式以及支付参数;
根据所述新增请求对应的支付方式以及支付参数,创建新的订单支付方式。
在该可选的实施方式中,可以通过工厂模式创建新的订单支付方式,在配置中心新增支付方式以及支付参数,就可以实现新的支付方式,提高开发效率。
其中,所述工厂模式(Factory Pattern)是一种设计模式,指能够通过使用一个共同的接口来指向新创建的对象。
作为一种可选的实施方式,所述多个服务包括通知服务,所述方法还包括:
对所述通知服务进行监测;
当监测到通知服务向外部网络发送数据包时,丢弃所述数据包。
在该可选的实施方式中,禁止所述通知服务向外发送数据包,可以通过网关拦截所有来自通知服务的模块的数据包,使得所述通知服务只能被其他模块调用,而不能自身对外发送数据包,可以避免网络被劫持从而导致所述通知服务向用户发送错误的支付通知。
作为一种可选的实施方式,所述多个服务包括支付服务,所述方法还包括:
对所述支付服务进行监测;
当监测到存在支付请求指向所述支付服务时,对所述支付请求进行拦截。
在该可选的实施方式中,可以通过网关拦截所有执行所述支付服务的请求(所述支付请求),使得所述支付服务只能对外发送请求,而不能接收请求,可以避免网络被劫持从而导致所述支付服务接收非法请求、进行非法操作的情况。
需要强调的是,为进一步保证上述订单的数据的私密和安全性,上述订单的数据还可以存储于一区块链的节点中。
在图1所描述的方法流程中,可以通过建立请求标识的形式来确定可用服务(已被执行)以及暂时不可用服务(未被执行),单独重试暂时不可用服务,可以避免因网络波动等异常引发的系统不可用。通过责任链实现非固定数据的计算服务,能够避免前端数据被篡改的不安全性,提高了系统的可拓展性以及可维护性。同时,服务的调用采用异步的形式,可以同时执行多个服务,提高系统性能以及数据吞吐量,且通过状态修改校验机制,确保重要数据在多个服务被调用的时候不出错,提高了系统的容错性,确保了系统的可用性。
图2是本发明公开的一种订单数据处理装置的较佳实施例的功能模块图。
请参见图2,所述订单数据处理装置20运行于服务器中。所述订单数据处理装置20可以包括多个由程序代码段所组成的功能模块。所述订单数据处理装置20中的各个程序段的程序代码可以存储于存储器中,并由至少一个处理器所执行,以执行图1所描述的订单数据处理方法中的部分或全部步骤。
本实施例中,所述订单数据处理装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:确定模块201、生成模块202、调用模块203、判断模块204及修改模块205。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。
确定模块201,用于当接收到针对目标订单的处理请求时,确定所述处理请求所对应的多个服务,其中,所述处理请求携带有请求参数。
本发明实施例中,一个处理请求可以包括多个服务,比如,订单创建请求可能包括,订单查询服务,订单校验服务,订单创建服务,订单状态存储服务等。不同的服务对应不同的请求参数,所述处理请求可能包括由多个服务的请求参数,可以根据所述请求参数的特殊字符、接口标识以及参数类型等来确定对应的服务。
此外,订单数据是宏观经济研究分析的重要指标/指数。宏观经济即宏观层面的国民经济,包括一国国民经济总量、国民经济构成(主要分为GDP部门与非GDP部门)、产业发展阶段与产业结构、经济发展程度(人类发展指数、社会发展指数、社会福利指数、幸福指数)。随着科技的发展,网络购物逐渐成为大多数人生活的一部分。网络购物的订单数据也就成为了宏观经济研究分析的重要指标/指数。
生成模块202,用于根据所述请求参数,生成多个请求标识,其中,所述多个服务与所述多个请求标识一一对应。
本发明实施例中,可以对所述请求参数进行加密,获得唯一的请求标识,也可以按照具体业务需求,生成唯一的字符串作为请求标识。
所述确定模块201,还用于根据所述多个请求标识,从所述多个服务中确定未被执行的目标服务。
所述确定模块201,还用于若所述目标服务中包含有非固定数据的计算服务,确定与所述非固定数据对应的责任链,其中,所述责任链由多个侧链对象组成,每个侧链对象包含有实现所述计算服务的类,除了在所述责任链最末位置的末端侧链对象,每个侧链对象包含有用于指向下一个侧链对象的指针。
本发明实施例中,在涉及非固定数据的计算服务时,比如订单中价格计算,一类物品可以对应多个不同的价格,可以为每个价格创建一个侧链对象,每个侧链对象中可以有多个具体的实现类(用于实现所述计算服务的类),比如判断所述用户是否为目标用户群体(比如学生),若是,返回对应的价格,若不是,可以通过指针,将参数传给下一个侧链对象进行处理。能够避免前端数据被篡改的不安全性,同时,若是有新的计算规则,添加一个侧链对象即可,提高了可拓展性以及可维护性。
调用模块203,用于异步调用所述责任链以及异步执行除了所述非固定数据的计算服务之外的目标服务,获得返回参数。
本发明实施例中,通过异步的方式执行服务,不需要等待其他服务执行完毕再去执行所述目标服务,可以同时处理多个服务,提高系统的运行速度,以提高系统性能,比如发送支付通知结果的服务被执行时,可以直接去存储由支付通知结果信息的数据库中查询,然后根据查询结果去执行服务,不需要等待其他服务的执行。如果在某一个环节的服务中断了,订单状态依旧会在数据库中保存,一旦服务恢复,订单会继续处理,提高了系统的容错性能。
判断模块204,用于判断所述返回参数所携带的待修改状态是否合法。
修改模块205,用于若所述返回参数所携带的待修改状态合法,将所述目标订单的状态修改为所述待修改状态。
本发明实施例中,在对订单的状态进行修改时,需要确定返回参数所携带的待修改状态合法后才进行修改,确定订单的状态数据的准确性。
作为一种可选的实施方式,所述生成模块202根据所述请求参数,生成多个请求标识的方式具体为:
获取请求记录,其中,所述请求记录保存有所有历史请求的历史请求参数以及历史请求标识;
判断所述请求记录中是否有与所述请求参数匹配的历史请求标识;
若所述请求记录中没有与所述请求参数匹配的历史请求标识,根据所述多个服务中每个服务的唯一标识以及所述请求参数,生成多个请求标识。
在该可选的实施方式中,可以将所有历史请求的历史请求参数以及历史请求标识保存在请求记录中,在生成请求标识时,需要查看历史请求记录,判断所述请求记录中是否有与所述请求参数匹配的历史请求标识,可以避免因网络波动等原因,为相同服务的相同参数生成不同的请求标识。确保请求标识的唯一性。
作为一种可选的实施方式,所述确定模块201根据所述多个请求标识,从所述多个服务中确定未被执行的目标服务的方式具体为:
根据所述多个请求标识,确定所述多个服务的服务状态;
从所述多个服务中,将所述服务状态为未执行的服务确定为所述目标服务。
在该可选的实施方式中,可以为每个服务预先建立请求标识与服务状态的关联并保存在数据库中,可以通过请求标识去数据库中查询某一个服务的服务状态,从而可以确定该服务是否已经被执行过了。可以根据请求标识,找出未被执行的目标服务(包括了没有被成功调用的服务),能够避免重复调用已经执行过的服务,保障了数据处理的准确性。因为一个处理请求可能会重复调用某些服务,比如因为网络延迟等情况,导致某个服务调用超时而失败了,系统可以在规定时间内重新调用这个服务,同时,也会存在某些服务被调用成功了的情况,被调用成功了的服务的服务状态为已执行,需要避免重复调用已经执行了的服务而导致数据处理出错误(比如多次付款)的情况。
作为一种可选的实施方式,所述修改模块205,还用于所述调用模块203异步调用所述责任链以及异步执行除了所述非固定数据的计算服务之外的目标服务,获得返回参数之后,以及所述判断模块204判断所述返回参数所携带的待修改状态是否合法之前,将所述目标服务的服务状态修改为已执行;
所述订单数据处理装置20还可以包括:
建立模块,用于建立所述目标服务的请求标识与所述目标服务的服务状态的关联并保存。
在该可选的实施方式中,当所述目标服务被成功执行时,需要将所述目标服务的服务状态修改为已执行,建立所述目标服务的请求标识与所述目标服务的服务状态的关联并保存至数据库中。
作为一种可选的实施方式,所述判断模块204判断所述返回参数所携带的待修改状态是否合法的方式具体为:
获取所述目标订单的当前状态;
根据所述当前状态,确定所述目标订单的合法状态;
判断所述返回参数所携带的待修改状态与所述合法修改状态是否一致;
若所述返回参数所携带的待修改状态与所述合法修改状态一致,确定所述返回参数所携带的待修改状态合法;或
若所述返回参数所携带的待修改状态与所述合法修改状态不一致,确定所述返回参数所携带的待修改状态非法。
在该可选的实施方式中,可以设置一个订单状态模板,即规定订单状态的流程,比如规定未付款状态的下一个状态是已付款,然后接着是已出货。若所述目标订单的当前状态是已付款,则可以确定所述目标订单的下一个状态(所述合法状态)是已出货,不能跳到未付款的状态。对于一个业务实体(订单),可能多次调用修改服务,能确保业务实体的状态保持不变或者合法修改,保障了重要数据在处理过程中不会被随意更改,提高了数据被处理的准确性。
作为一种可选的实施方式,所述多个服务包括通知服务,所述订单数据处理装置20还可以包括:
第一检测模块,用于对所述通知服务进行监测;
丢弃模块,用于当监测到通知服务向外部网络发送数据包时,丢弃所述数据包。
在该可选的实施方式中,禁止所述通知服务向外发送数据包,可以通过网关拦截所有来自通知服务的模块的数据包,使得所述通知服务只能被其他模块调用,而不能自身对外发送数据包,可以避免网络被劫持从而导致所述通知服务向用户发送错误的支付通知。
作为一种可选的实施方式,所述多个服务包括支付服务,所述订单数据处理装置20还可以包括:
第二检测模块,用于对所述支付服务进行监测;
拦截模块,用于当监测到存在支付请求指向所述支付服务时,对所述支付请求进行拦截。
在该可选的实施方式中,可以通过网关拦截所有执行所述支付服务的请求(所述支付请求),使得所述支付服务只能对外发送请求,而不能接收请求,可以避免网络被劫持从而导致所述支付服务接收非法请求、进行非法操作的情况。
作为一种可选的实施方式,所述确定模块201,还用于当接收到针对订单支付方式的新增请求时,确定与所述新增请求对应的支付方式以及支付参数;
所述订单数据处理装置20还可以包括:
创建模块,用于根据所述新增请求对应的支付方式以及支付参数,创建新的订单支付方式。
在该可选的实施方式中,可以通过工厂模式创建新的订单支付方式,在配置中心新增支付方式以及支付参数,就可以实现新的支付方式,提高开发效率。
其中,所述工厂模式(Factory Pattern)是一种设计模式,指能够通过使用一个共同的接口来指向新创建的对象。
需要强调的是,为进一步保证上述订单的数据的私密和安全性,上述订单的数据还可以存储于一区块链的节点中。
在图2所描述的订单数据处理装置20中,可以通过建立请求标识的形式来确定可用服务(已被执行)以及暂时不可用服务(未被执行),单独重试暂时不可用服务,可以避免因网络波动等异常引发的系统不可用。通过责任链实现非固定数据的计算服务,能够避免前端数据被篡改的不安全性,提高了系统的可拓展性以及可维护性。同时,服务的调用采用异步的形式,可以同时执行多个服务,提高系统性能以及数据吞吐量,且通过状态修改校验机制,确保重要数据在多个服务被调用的时候不出错,提高了系统的容错性,确保了系统的可用性。
如图3所示,图3是本发明实现订单数据处理方法的较佳实施例的服务器的结构示意图。所述服务器3包括存储器31、至少一个处理器32、存储在所述存储器31中并可在所述至少一个处理器32上运行的计算机程序33及至少一条通讯总线34。
本领域技术人员可以理解,图3所示的示意图仅仅是所述服务器3的示例,并不构成对所述服务器3的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器3还可以包括输入输出设备、网络接入设备等。
所述服务器3还包括但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(InternetProtocol Television,IPTV)、智能式穿戴式设备等。所述服务器3所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
所述至少一个处理器32可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、分立硬件组件等。该处理器32可以是微处理器或者该处理器32也可以是任何常规的处理器等,所述处理器32是所述服务器3的控制中心,利用各种接口和线路连接整个服务器3的各个部分。
所述存储器31可用于存储所述计算机程序33和/或模块/单元,所述处理器32通过运行或执行存储在所述存储器31内的计算机程序和/或模块/单元,以及调用存储在存储器31内的数据,实现所述服务器3的各种功能。所述存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器3的使用所创建的数据等。此外,存储器31可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart MediaCard,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件等。
结合图1,所述服务器3中的所述存储器31存储多个指令以实现一种订单数据处理方法,所述处理器32可执行所述多个指令从而实现:
当接收到针对目标订单的处理请求时,确定所述处理请求所对应的多个服务,其中,所述处理请求携带有请求参数;
根据所述请求参数,生成多个请求标识,其中,所述多个服务与所述多个请求标识一一对应;
根据所述多个请求标识,从所述多个服务中确定未被执行的目标服务;
若所述目标服务中包含有非固定数据的计算服务,确定与所述非固定数据对应的责任链,其中,所述责任链由多个侧链对象组成,每个侧链对象包含有实现所述计算服务的类,除了在所述责任链最末位置的末端侧链对象,每个侧链对象包含有用于指向下一个侧链对象的指针;
异步调用所述责任链以及异步执行除了所述非固定数据的计算服务之外的目标服务,获得返回参数;
判断所述返回参数所携带的待修改状态是否合法;
若所述返回参数所携带的待修改状态合法,将所述目标订单的状态修改为所述待修改状态。
具体地,所述处理器32对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在图3所描述的服务器3中,可以通过建立请求标识的形式来确定可用服务(已被执行)以及暂时不可用服务(未被执行),单独重试暂时不可用服务,可以避免因网络波动等异常引发的系统不可用。通过责任链实现非固定数据的计算服务,能够避免前端数据被篡改的不安全性,提高了系统的可拓展性以及可维护性。同时,服务的调用采用异步的形式,可以同时执行多个服务,提高系统性能以及数据吞吐量,且通过状态修改校验机制,确保重要数据在多个服务被调用的时候不出错,提高了系统的容错性,确保了系统的可用性。
所述服务器3集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种订单数据处理方法,其特征在于,所述订单数据处理方法包括:
当接收到针对目标订单的处理请求时,确定所述处理请求所对应的多个服务,其中,所述处理请求携带有请求参数;
根据所述请求参数,生成多个请求标识,其中,所述多个服务与所述多个请求标识一一对应;
根据所述多个请求标识,从所述多个服务中确定未被执行的目标服务;
若所述目标服务中包含有非固定数据的计算服务,确定与所述非固定数据对应的责任链,其中,所述责任链由多个侧链对象组成,每个侧链对象包含有实现所述计算服务的类,除了在所述责任链最末位置的末端侧链对象,每个侧链对象包含有用于指向下一个侧链对象的指针;
异步调用所述责任链以及异步执行除了所述非固定数据的计算服务之外的目标服务,获得返回参数;
判断所述返回参数所携带的待修改状态是否合法;
若所述返回参数所携带的待修改状态合法,将所述目标订单的状态修改为所述待修改状态。
2.根据权利要求1所述的订单数据处理方法,其特征在于,所述根据所述请求参数,生成多个请求标识包括:
获取请求记录,其中,所述请求记录保存有所有历史请求的历史请求参数以及历史请求标识;
判断所述请求记录中是否有与所述请求参数匹配的历史请求标识;
若所述请求记录中没有与所述请求参数匹配的历史请求标识,根据所述多个服务中每个服务的唯一标识以及所述请求参数,生成多个请求标识。
3.根据权利要求1所述的订单数据处理方法,其特征在于,所述根据所述多个请求标识,从所述多个服务中确定未被执行的目标服务包括:
根据所述多个请求标识,确定所述多个服务的服务状态;
从所述多个服务中,将所述服务状态为未执行的服务确定为所述目标服务。
4.根据权利要求1所述的订单数据处理方法,其特征在于,所述异步调用所述责任链以及异步执行除了所述非固定数据的计算服务之外的目标服务,获得返回参数之后,以及所述判断所述返回参数所携带的待修改状态是否合法之前,所述订单数据处理方法还包括:
将所述目标服务的服务状态修改为已执行;
建立所述目标服务的请求标识与所述目标服务的服务状态的关联并保存。
5.根据权利要求1至4中任一项所述的订单数据处理方法,其特征在于,所述判断所述返回参数所携带的待修改状态是否合法包括:
获取所述目标订单的当前状态;
根据所述当前状态,确定所述目标订单的合法状态;
判断所述返回参数所携带的待修改状态与所述合法修改状态是否一致;
若所述返回参数所携带的待修改状态与所述合法修改状态一致,确定所述返回参数所携带的待修改状态合法;或
若所述返回参数所携带的待修改状态与所述合法修改状态不一致,确定所述返回参数所携带的待修改状态非法。
6.根据权利要求1至4中任一项所述的订单数据处理方法,其特征在于,所述多个服务包括通知服务,所述订单数据处理方法还包括:
对所述通知服务进行监测;
当监测到通知服务向外部网络发送数据包时,丢弃所述数据包。
7.根据权利要求1至4中任一项所述的订单数据处理方法,其特征在于,所述多个服务包括支付服务,所述订单数据处理方法还包括:
对所述支付服务进行监测;
当监测到存在支付请求指向所述支付服务时,对所述支付请求进行拦截。
8.一种订单数据处理装置,其特征在于,所述订单数据处理装置包括:
确定模块,用于当接收到针对目标订单的处理请求时,确定所述处理请求所对应的多个服务,其中,所述处理请求携带有请求参数;
生成模块,用于根据所述请求参数,生成多个请求标识,其中,所述多个服务与所述多个请求标识一一对应;
所述确定模块,还用于根据所述多个请求标识,从所述多个服务中确定未被执行的目标服务;
所述确定模块,还用于若所述目标服务中包含有非固定数据的计算服务,确定与所述非固定数据对应的责任链,其中,所述责任链由多个侧链对象组成,每个侧链对象包含有实现所述计算服务的类,除了在所述责任链最末位置的末端侧链对象,每个侧链对象包含有用于指向下一个侧链对象的指针;
调用模块,用于异步调用所述责任链以及异步执行除了所述非固定数据的计算服务之外的目标服务,获得返回参数;
判断模块,用于判断所述返回参数所携带的待修改状态是否合法;
修改模块,用于若所述返回参数所携带的待修改状态合法,将所述目标订单的状态修改为所述待修改状态。
9.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至7中任意一项所述的订单数据处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至7中任意一项所述的订单数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718896.2A CN111899018B (zh) | 2020-07-23 | 2020-07-23 | 订单数据处理方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718896.2A CN111899018B (zh) | 2020-07-23 | 2020-07-23 | 订单数据处理方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111899018A true CN111899018A (zh) | 2020-11-06 |
CN111899018B CN111899018B (zh) | 2022-08-26 |
Family
ID=73190548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010718896.2A Active CN111899018B (zh) | 2020-07-23 | 2020-07-23 | 订单数据处理方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111899018B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114386832A (zh) * | 2022-01-12 | 2022-04-22 | 首约科技(北京)有限公司 | 一种渠道订单秒取消问题处理方法 |
CN115170095A (zh) * | 2022-09-07 | 2022-10-11 | 浪潮通信信息系统有限公司 | 订单处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109785041A (zh) * | 2018-12-13 | 2019-05-21 | 深圳平安财富宝投资咨询有限公司 | 基于分布式的订单执行方法、装置、设备及可读存储介质 |
US20190311054A1 (en) * | 2018-04-10 | 2019-10-10 | Walmart Apollo, Llc | High throughput order fullfillment database system |
CN111047152A (zh) * | 2019-11-22 | 2020-04-21 | 口碑(上海)信息技术有限公司 | 一种工单处理方法及装置 |
CN111240812A (zh) * | 2018-11-28 | 2020-06-05 | 中国移动通信集团广东有限公司 | 任务执行方法及装置 |
-
2020
- 2020-07-23 CN CN202010718896.2A patent/CN111899018B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190311054A1 (en) * | 2018-04-10 | 2019-10-10 | Walmart Apollo, Llc | High throughput order fullfillment database system |
CN111240812A (zh) * | 2018-11-28 | 2020-06-05 | 中国移动通信集团广东有限公司 | 任务执行方法及装置 |
CN109785041A (zh) * | 2018-12-13 | 2019-05-21 | 深圳平安财富宝投资咨询有限公司 | 基于分布式的订单执行方法、装置、设备及可读存储介质 |
CN111047152A (zh) * | 2019-11-22 | 2020-04-21 | 口碑(上海)信息技术有限公司 | 一种工单处理方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114386832A (zh) * | 2022-01-12 | 2022-04-22 | 首约科技(北京)有限公司 | 一种渠道订单秒取消问题处理方法 |
CN114386832B (zh) * | 2022-01-12 | 2024-09-10 | 首约科技(北京)有限公司 | 一种渠道订单秒取消问题处理方法 |
CN115170095A (zh) * | 2022-09-07 | 2022-10-11 | 浪潮通信信息系统有限公司 | 订单处理方法、装置、电子设备及存储介质 |
CN115170095B (zh) * | 2022-09-07 | 2022-11-29 | 浪潮通信信息系统有限公司 | 订单处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111899018B (zh) | 2022-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111694841B (zh) | 订单标识生成方法、装置、服务器及存储介质 | |
CN110688425B (zh) | 针对区块链的条件性延期事务的方法和系统 | |
CN112506747B (zh) | 一种业务进程监控方法、装置、电子设备及存储介质 | |
CN111641710A (zh) | 基于微服务的数据处理方法、装置、终端及存储介质 | |
CN111556059A (zh) | 异常检测方法、异常检测装置及终端设备 | |
CN110838065A (zh) | 一种交易数据处理方法及装置 | |
CN111639309B (zh) | 一种数据处理方法、装置、节点设备及存储介质 | |
CN111679893A (zh) | 运行系统构建方法、装置、电子设备及存储介质 | |
CN110543516A (zh) | 智能合约处理方法、装置、计算机设备及存储介质 | |
CN111340475A (zh) | 基于区块链的预付卡交易处理方法、装置和智能终端 | |
CN111899018B (zh) | 订单数据处理方法、装置、服务器及存储介质 | |
CN112948275A (zh) | 测试数据生成方法、装置、设备及存储介质 | |
WO2020055413A1 (en) | Blockchain for audit | |
CN111767270A (zh) | 数据迁移方法、装置、服务器及存储介质 | |
CN112015663A (zh) | 测试数据录制方法、装置、设备及介质 | |
CN112039893B (zh) | 私密交易处理方法、装置、电子设备及可读存储介质 | |
US20210165907A1 (en) | Systems and methods for intelligent and quick masking | |
CN112363935A (zh) | 数据联调方法、装置、电子设备及存储介质 | |
WO2021114627A1 (zh) | 基于分布式事务的数据处理方法、装置、终端及存储介质 | |
CN116360769A (zh) | 代码生成方法、装置、设备及存储介质 | |
CN111813829A (zh) | 数据决算方法、装置、电子设备及存储介质 | |
CN112306648B (zh) | 事务调用方法、装置、电子设备及存储介质 | |
TWI694402B (zh) | 業務校驗方法和設備 | |
CN112181599A (zh) | 模型训练方法、装置及存储介质 | |
CN111857883B (zh) | 页面数据校验方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |