CN110912980B - 订单状态同步方法、***及存储介质 - Google Patents
订单状态同步方法、***及存储介质 Download PDFInfo
- Publication number
- CN110912980B CN110912980B CN201911136844.8A CN201911136844A CN110912980B CN 110912980 B CN110912980 B CN 110912980B CN 201911136844 A CN201911136844 A CN 201911136844A CN 110912980 B CN110912980 B CN 110912980B
- Authority
- CN
- China
- Prior art keywords
- terminal
- order
- server
- identifier
- push
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例公开了一种订单状态同步方法、***及存储介质,该方法包括:订单服务器在生成订单的第一预设时间内接收到第一终端的状态变更请求,执行状态变更处理,并将状态变更信息发送至消息服务器;消息服务器生成对应的推送消息,并发送至推送平台;推送平台将推送消息推送至第二终端,若推送失败,则将推送失败结果上报给消息服务器;消息服务器将推送消息保存至缓存数据库;第二终端服务器在接收到第二终端的轮询请求时,查询缓存数据库是否存在第二终端标识对应的推送消息,并获取查询结果对应的标识信息,将标识信息发送至第二终端;第二终端若根据标识信息确定有未收到的推送消息,则更新订单状态。本申请实施例降低了订单服务器的压力。
Description
技术领域
本申请实施例涉及互联网技术领域,特别是涉及一种订单状态同步方法、***及存储介质。
背景技术
用户在下单后可以在一分钟内发起急速退款请求,订单服务器接收到急速退款请求,确定符合急速退款条件时,进行退款,并将退款成功的消息返回给用户端,同时通知消息服务器退款信息,消息服务器生成退款的推送消息,通过推送平台将推送消息发送至对应的商家端。
由于推送平台推送的推送消息到达商家端的通道存在很多不稳定因素,比如商家端当前不在线或者推送平台当前不可用等,导致推送消息推送失败,即不能将推送消息推送到商家端,从而商家端不能更新订单状态,导致商家端的订单状态与订单中心的订单状态无法同步。商家端为了实现和订单服务器中的订单状态的同步,需要订单服务器从所有的订单状态中查询所述商家端对应的订单状态,由于订单状态的数据量较大,导致订单服务器查询订单状态时的压力较大。
发明内容
本申请实施例提供一种订单状态同步方法、***及存储介质,有助于降低订单服务器的压力。
为了解决上述问题,第一方面,本申请实施例提供了一种订单状态同步方法,包括:
订单服务器在生成订单的第一预设时间内接收到第一终端对所述订单的状态变更请求时,执行状态变更处理,并将状态变更信息发送至消息服务器,所述状态变更信息包括与所述订单相关的第二终端标识;
消息服务器根据所述状态变更信息生成对应的推送消息,将所述推送消息发送至推送平台;
所述推送平台将所述推送消息推送至所述第二终端标识对应的第二终端,若所述推送消息推送失败,则将推送失败结果上报给所述消息服务器;
所述消息服务器根据所述推送失败结果,将所述推送消息保存至缓存数据库,所述缓存数据库包括ES数据库或Redis数据库;
所述第二终端向第二终端服务器发送订单状态的轮询请求,所述轮询请求包括所述第二终端标识;
第二终端服务器在接收到所述第二终端的轮询请求时,根据所述第二终端标识,查询所述缓存数据库是否存在所述第二终端标识对应的推送消息,并获取查询结果对应的标识信息,将所述标识信息发送至所述第二终端;
所述第二终端若根据所述标识信息确定有未收到的推送消息,则更新订单状态。
第二方面,本申请实施例提供了一种订单状态同步***,包括:
第一终端,用于在生成订单的第一预设时间内向订单服务器发送对所述订单的状态变更请求;
订单服务器,用于在生成订单的第一预设时间内接收到第一终端对所述订单的状态变更请求时,执行状态变更处理,并将状态变更信息发送至消息服务器,所述状态变更信息包括与所述订单相关的第二终端标识;
消息服务器,用于根据所述状态变更信息生成对应的推送消息,将所述推送消息发送至推送平台;
推送平台,用于将所述推送消息推送至所述第二终端标识对应的第二终端,若所述推送消息推送失败,则将推送失败结果上报给所述消息服务器;
所述消息服务器,还用于根据所述推送失败结果,将所述推送消息保存至缓存数据库;
缓存数据库,包括ES数据库或Redis数据库,用于保存所述推送平台推送失败的推送消息;
第二终端,用于向第二终端服务器发送订单状态的轮询请求,所述轮询请求包括所述第二终端标识;
第二终端服务器,用于在接收到所述轮询请求时,根据所述第二终端标识,查询所述缓存数据库是否存在所述第二终端标识对应的推送消息,并获取查询结果对应的标识信息,将所述标识信息发送至所述第二终端;
所述第二终端,还用于若根据所述标识信息确定有未收到的推送消息,则更新订单状态。
第三方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的订单状态同步方法的步骤。
本申请实施例公开的订单状态同步方法、***及存储介质,通过推送平台将第一终端变更订单状态的推送消息推送至第二终端未推送成功时,将推送失败结果上报给消息服务器,消息服务器将所述推送消息保存至缓存数据库,第二终端服务器接收到第二终端的轮询请求后,根据轮询请求中的第二终端标识,查询缓存数据库是否存在所述第二终端标识对应的推送消息并获取查询结果对应的标识信息,将标识信息发送至第二终端,第二终端根据标识信息确定有未收到的推送消息时更新订单状态,从而在订单状态变更的推送消息未推送成功时,也可以及时更新订单的状态,使得第二终端的订单状态与订单服务器的订单状态同步,提高了订单状态同步的及时性,而且通过第二终端以轮询的方式从缓存数据库查询未推送成功的推送消息,而不是直接从具有较大数据量的订单服务器查询订单状态,降低了订单服务器的压力,并且提高了查询速度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一的订单状态同步方法的流程图;
图2是本申请实施例二的订单状态同步***的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本实施例公开的一种订单状态同步方法,该方法较适用于实时配送等领域中,如外卖领域、超市到家领域以及其他实时配送领域等,如图1所示,该方法包括:步骤110至步骤160。
步骤110,订单服务器在生成订单的第一预设时间内接收到第一终端对所述订单的状态变更请求时,执行状态变更处理,并将状态变更信息发送至消息服务器,所述状态变更信息包括与所述订单相关的第二终端标识。
其中,第一预设时间是预先设置的时间阈值,在生成订单的第一预设时间内,订单中心可以直接根据第一终端的状态变更请求执行状态变更处理而不需要经过第二终端的同意,第一预设时间要远远小于订单完成时间。所述第一终端可以是用户端,所述第二终端可以是商家端。所述状态变更请求可以是订单取消请求,所述订单取消请求例如可以是退款请求。例如,在外卖领域,商家的配餐时间和配送员的配送时间之和大概是30分钟-60分钟,为了不给商家造成损失,第一预设时间可以为2分钟,即在商家端处理该订单之前允许用户端直接退款。订单服务器用于提供订单相关的服务,如生成订单、取消订单以及查询订单状态等。
订单服务器在接收到第一终端的下单请求及订单详情时,生成订单,如果在生成订单的第一预设时间内,用户想取消订单,可以通过第一终端向订单服务器发送状态变更请求,订单中心接收到第一终端对订单的状态变更请求时,根据状态变更请求中的订单标识确定该订单的生成时间以及接收到状态变更请求的时间,如果接收到状态变更请求的时间与所述订单的生成时间之差小于所述第一预设时间,则确定满足状态变更条件,并执行状态变更处理,将带有第二终端标识和订单标识的状态变更信息发送至消息服务器。
步骤120,消息服务器根据所述状态变更信息生成对应的推送消息,将所述推送消息发送至推送平台。
其中,消息服务器用于提供消息相关的服务,如订单生成消息、订单取消消息以及退款消息等。
消息服务器接收到订单服务器发送的状态变更信息时,根据所述状态变更信息生成对应的推送消息,将所述推送消息发送至推送平台,由推送平台完成向第二终端推送所述推送消息的操作。所述推送消息包括订单标识和与所述订单相关的第二终端标识。
步骤130,所述推送平台将所述推送消息推送至所述第二终端标识对应的第二终端,若所述推送消息推送失败,则将推送失败结果上报给所述消息服务器。
其中,所述推送平台用于向第二终端或第一终端推送消息,在本申请实施例中,推送平台还用于跟踪推送消息的推送状态,并将推送状态上报给消息服务器。
推送平台在接收到消息服务器发送的推送消息后,根据所述推送消息中的第二终端标识,将所述推送消息推送至所述第二终端标识对应的第二终端,并跟踪推送消息的推送状态,如果推送消息推送失败,则将推送失败结果上报给消息服务器。其中,推送平台跟踪推送消息的推送状态可以根据是否接收到所述第二终端的反馈来实现,若在发出所述推送消息的一定时间内接收到所述第二终端的反馈则确定所述推送消息推送成功,若在发出所述推送消息的一定时间内未接收到所述第二终端的反馈则确定所述推送消息推送失败。
步骤140,所述消息服务器根据所述推送失败结果,将所述推送消息保存至缓存数据库。
其中,缓存数据库用于存储推送失败的推送消息,为高速缓存数据库,例如可以是Redias(Remote Dictionary Server,远程字典服务)数据库或ES(ElasticSearch)数据库。其中,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存也可持久化的日志型、Key-Value数据库,并提供多种语言的API。ElasticSearch是一个分布式、高扩展、高实时的搜索与数据分析引擎。
消息服务器接收到推送平台发送的所述推送消息的推送失败结果,则将推送消息保存至缓存数据库。若缓存数据库为Redias数据库,则可以将第二终端标识作为Key、推送消息作为Value进行存储。
具体实施时,消息服务器根据状态变更信息生成对应的推送消息后,将所述推送消息发送至推送平台,并将所述推送消息保存至缓存数据库,并在接收到推送平台上报的推送成功结果后,将缓存数据库中所述推送消息删除,如果接收到推送平台上报的推送失败结果,则保留缓存数据库中所述推送消息。
步骤150,所述第二终端向第二终端服务器发送订单状态的轮询请求,所述轮询请求包括所述第二终端标识。
第二终端以第二预设时间定时向所述第二终端服务器发送轮询请求。所述第二预设时间可以小于所述第一预设时间。第二终端以轮询的方式向服务器发送状态查询请求,通过小于第一预设时间的第二预设时间定时进行状态查询,可以及时更新订单的状态,达到第二终端的订单状态和订单服务器的订单状态一致的目的。第二预设时间小于第一预设时间可以使得第二终端及时根据查询结果更新订单状态,如第一预设时间为2分钟时,第二预设时间可以是1分钟,从而订单服务器在2分钟内进行状态变更处理后,推送平台未推送成功对应的推送消息,导致第二终端与订单服务器的订单状态不一致,这时通过轮询的方式可以及时发现这种情况,从而及时更新订单状态,实现第二终端的订单状态与订单服务器的订单状态同步,在外卖领域可以避免商家由于订单状态不同步而准备了订单中的商品造成的损失。
其中,轮询请求可以包括状态查询请求和新订单获取请求。第二终端以第二预设时间定时向所述服务器发送轮询请求,可以是在以轮询的方式查询是否有新订单时同时发送状态查询请求,即将新订单获取请求和状态查询请求同时发送给第二终端服务器,第二终端服务器接收到新订单获取请求和状态查询请求后,将状态查询请求转发给缓存数据库,将新订单获取请求转发给订单服务器,第二终端服务器接收到缓存数据库发送的查询结果对应的标识信息,并接收到订单服务器转发的新订单获取结果后,在新订单获取结果的基础上增加表示标识信息的参数,从而将新订单获取结果和所述标识信息同时发送给第二终端,从而可以使用第二终端已有的轮询方式实现订单状态的同步,而不必再单独以另外的轮询方式进行轮询,节省了数据传输资源,而且也可以降低第二终端的耗电量。
步骤160,第二终端服务器在接收到所述轮询请求时,根据所述第二终端标识,查询所述缓存数据库是否存在所述第二终端标识对应的推送消息,并获取查询结果对应的标识信息,将所述标识信息发送至所述第二终端。
其中,所述第二终端服务器用于通过供第二终端调用的接口向第二终端提供服务。
第二终端服务器在接收到第二终端发送的轮询请求后,从缓存数据库中查询是否存在轮询请求中的商家标识对应的推送消息,确定查询结果为缓存数据库存在所述第二终端标识对应的推送消息或缓存数据库不存在所述第二终端标识对应的推送消息,并获取查询结果对应的标识信息,将标识信息发送至所述第二终端。
在本申请的一个实施例中,所述第二终端服务器在接收到所述轮询请求时,根据所述第二终端标识,查询所述缓存中心是否存在所述第二终端标识对应的推送消息,并获取查询结果对应的标识信息,将所述标识信息发送至所述第二终端,包括:第二终端服务器在接收到所述第二终端的轮询请求时,将所述轮询请求发送至所述缓存数据库;所述缓存数据库根据所述轮询请求中的第二终端标识,查询是否存在所述第二终端标识对应的推送消息,并生成查询结果对应的标识信息,将所述标识信息返回至所述第二终端服务器;所述第二终端服务器将所述标识信息发送至所述第二终端。
第二终端服务器接收到第二终端发送的轮询请求后,将轮询请求发送至缓存数据库,缓存数据库根据轮询请求中的第二终端标识,查询本身是否存储所述第二终端标识对应的推送消息,确定查询结果,并生成查询结果对应的标识信息,将所述标识信息发送至服务器,由第二终端服务器将所述标识信息转发至第二终端。其中,标识信息与查询结果对应,若查询结果为缓存数据库存储所述第二终端标识对应的推送消息,则标识信息可以是真,即将标签flag赋值为ture,得到标识信息;若查询结果为缓存数据库未存储所述第二终端标识对应的推送消息,则标识信息可以是假,即将标签flag赋值为false,得到标识信息。
第二终端服务器在接收到第二终端发送的轮询请求后,从缓存数据库查询是否有未推送成功的推送消息,而不是向订单服务器查询第二终端标识对应的订单状态,可以降低订单服务器的压力,因为订单服务器的订单状态信息比较多,数据量较大,如果订单服务器进行查询,会导致查询时间较长,订单服务器压力较大,而本申请实施例通过向缓存数据库查询未推送成功的推送消息,则可以降低订单服务器的压力,而且由于缓存数据库只存储了未推送成功的推送消息,数据量较小,可以提高查询速度。
在本申请的一个实施例中,在所述将所述标识信息返回至第二终端服务器之后,还包括:所述缓存数据库删除所述第二终端标识对应的推送消息。缓存数据库在查询到所述第二终端标识对应的推送消息,并将对应的标识信息发送至第二终端服务器之后,第二终端服务器会将标识信息发送至第二终端,第二终端会更新订单状态,使得第二终端订单状态与订单服务器中订单状态一致,这时缓存数据库及时进行数据清洗,将所述第二终端标识对应的推送消息删除,避免第二终端再次查询订单状态时返回错误的标识信息,同时及时进行数据清洗,可以及时释放缓存数据库的存储空间。
步骤170,所述第二终端若根据所述标识信息确定有未收到的推送消息,则更新订单状态。
第二终端接收到第二终端服务器返回的标识信息后,识别所述标识信息,若所述标识信息为缓存数据库不存在所述第二终端标识对应的推送消息,则确定没有未收到的推送消息,不必更新订单状态;若所述标识信息为缓存数据库存在所述第二终端标识对应的推送消息,则确定有未收到的推送消息,则执行更新订单状态的操作。
在本申请的一个实施例中,所述第二终端若根据所述标识信息确定有未收到的推送消息,则更新订单状态,包括:所述第二终端若根据所述标识信息确定有未收到的推送消息,则发送订单同步请求给所述第二终端服务器;所述第二终端服务器将所述订单同步请求转发至所述订单服务器;所述订单服务器根据所述订单同步请求查询所述第二终端标识对应的订单状态,并将所述订单状态发送至所述第二终端服务器;所述第二终端服务器将所述订单状态转发给所述第二终端;所述第二终端根据所述订单状态更新自身存储的订单状态。其中,所述订单同步请求包括第二终端标识、订单创建时间和订单更新时间。在第二终端为商家端时,所述第二终端标识包括商家标识和商家端的设备标识。
第二终端接收到标识信息后,对所述标识信息进行识别,确定有未收到的推送消息后,发送订单同步请求给第二终端服务器,第二终端服务器将订单同步请求转发至订单服务器,订单服务器根据订单同步请求中的第二终端标识、订单创建时间和订单更新时间与订单服务器中所述商家标识对应的订单状态进行比对,确定不一致的订单状态,将该订单状态发送给第二终端服务器,由第二终端服务器将所述订单状态转发至第二终端,从而第二终端可以根据接收到的订单状态,重置自身存储的订单状态,并更新对应的订单卡片(即订单状态显示界面),使得第二终端用户可以及时了解到订单的最新状态,可以避免订单状态不一致时第二终端用户准备该订单中的商品造成的损失,解决了现有技术中由于推送消息推送失败导致的订单卡片显示的订单状态错误的问题。
本申请实施例公开的订单状态同步方法,通过推送平台将第一终端变更订单状态的推送消息推送至第二终端未推送成功时,将推送失败结果上报给消息服务器,消息服务器将所述推送消息保存至缓存数据库,第二终端服务器接收到第二终端用户的轮询请求后,根据轮询请求中的第二终端用户标识,查询缓存数据库是否存在所述第二终端用户标识对应的推送消息并获取查询结果对应的标识信息,将标识信息发送至第二终端,第二终端根据标识信息确定有未收到的推送消息时更新订单状态,从而在订单状态变更的推送消息未推送成功时,也可以及时更新订单的状态,使得第二终端的订单状态与订单服务器的订单状态同步,提高了订单状态同步的及时性,而且通过第二终端以轮询的方式从缓存数据库查询未推送成功的推送消息,而不是直接从具有较大数据量的订单服务器查询订单状态,降低了订单服务器的压力,并且提高了查询速度。
实施例二
本实施例公开的一种订单状态同步***,如图2所示,所述***包括:
第一终端210,用于在生成订单的第一预设时间内向订单服务器发送对所述订单的状态变更请求;
订单服务器220,用于在生成订单的第一预设时间内接收到第一终端对所述订单的第一终端请求时,执行第一终端处理,并将第一终端信息发送至消息服务器,所述第一终端信息包括与所述订单相关的第二终端标识;
消息服务器230,用于根据所述与所述订单相关的第二终端信息生成对应的推送消息,将所述推送消息发送至推送平台;
推送平台240,用于将所述推送消息推送至所述第二终端标识对应的第二终端,若所述推送消息推送失败,则将推送失败结果上报给所述消息服务器;
消息服务器230,还用于根据所述推送失败结果,将所述推送消息保存至缓存数据库;
缓存数据库250,包括ES数据库或Redis数据库,用于保存所述推送平台推送失败的推送消息;
第二终端260,用于向第二终端服务器发送订单状态的轮询请求,所述轮询请求包括所述第二终端标识;
第二终端服务器270,用于在接收到所述轮询请求时,根据所述第二终端标识,查询所述缓存数据库是否存在所述第二终端标识对应的推送消息,并获取查询结果对应的标识信息,将所述标识信息发送至所述第二终端;
商家端260,还用于若根据所述标识信息确定有未收到的推送消息,则更新订单状态。
可选的,所述第二终端服务器根据所述第二终端标识,查询所述缓存数据库是否存在所述第二终端标识对应的推送消息,并获取查询结果对应的标识信息的步骤包括:
第二终端服务器在接收到所述第二终端的轮询请求时,将所述轮询请求发送至所述缓存数据库;
所述缓存数据库根据所述轮询请求中的第二终端标识,查询是否存在所述第二终端标识对应的推送消息,并生成查询结果对应的标识信息,将所述标识信息返回至所述第二终端服务器;
所述第二终端服务器将所述标识信息发送至所述第二终端。
可选的,所述缓存数据库还用于:
在将所述标识信息返回至第二终端服务器之后,删除所述第二终端标识对应的推送消息。
可选的,所述第二终端更新订单状态的步骤包括:
所述第二终端若根据所述标识信息确定有未收到的推送消息,则发送订单同步请求给所述第二终端服务器;
所述第二终端服务器将所述订单同步请求转发至所述订单服务器;
所述订单服务器根据所述订单同步请求查询所述第二终端标识对应的订单状态,并将所述订单状态发送至所述第二终端服务器;
所述第二终端服务器将所述订单状态转发给所述第二终端;
所述第二终端根据所述订单状态更新自身存储的订单状态。
可选的,所述状态变更请求为订单取消请求。
如图2所示,订单服务器220在接收到第一终端210的状态变更请求后,根据状态变更请求中的订单标识查询该订单标识对应的订单的生成时间,如果接收到状态变更请求的时间在生成所述订单后的第一预设时间内,则执行状态变更处理,并将状态变更信息发送至消息服务器230;订单服务器230生成对应的推送消息,将推送消息发送至推送平台240,并将所述推送消息保存至缓存数据库250;推送平台240将所述推送消息推送至第二终端260,并获取所述推送消息的推送结果,将所述推送结果上报给消息服务器230,所述推送结果包括推送成功或推送失败;消息服务器230根据所述推送结果更新缓存数据库250的推送消息,即若推送结果为推送成功,则删除缓存数据库250中该推送结果对应的推送消息,若推送结果为推送失败,则保留缓存数据库250中该推送结果对应的推送消息;第二终端260向服务器发送轮询请求;第二终端服务器270接收到所述轮询请求后,向缓存数据库250查询轮询请求中的第二终端标识对应的推送消息,并获取查询结果对应的标识信息,将标识信息返回至第二终端260;第二终端260根据所述标识信息确定有未收到的推送消息时,向第二终端服务器270发送订单同步请求;第二终端服务器260将所述订单同步请求转发至订单服务器220;订单服务器查询所述第二终端标识对应的订单状态,并将订单状态返回至第二终端服务器270;第二终端服务器270将所述订单状态转发至第二终端260。
本申请实施例提供的订单状态同步***,用于实现本申请实施例一中所述的订单状态同步方法的各步骤,***中的各个设备的具体实施方式参见相应步骤,此处不再赘述。
本申请实施例公开的订单状态同步***,推送平台将第一终端变更订单状态的推送消息推送至第二终端未推送成功时,将推送失败结果上报给消息服务器,消息服务器将所述推送消息保存至缓存数据库,第二终端服务器接收到第二终端的轮询请求后,根据轮询请求中的第二终端标识,查询缓存数据库是否存在所述第二终端标识对应的推送消息并获取查询结果对应的标识信息,将标识信息发送至第二终端,第二终端根据标识信息确定有未收到的推送消息时更新订单状态,从而在订单状态变更的推送消息未推送成功时,也可以及时更新订单的状态,使得第二终端的订单状态与订单中心的订单状态同步,提高了订单状态同步的及时性,而且通过第二终端以轮询的方式从缓存数据库查询未推送成功的推送消息,而不是直接从具有较大数据量的订单服务器查询订单状态,降低了订单服务器的压力,并且提高了查询速度。
本申请实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例一所述的订单状态同步方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请实施例提供的一种订单状态同步方法、***及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
Claims (10)
1.一种订单状态同步方法,其特征在于,包括:
订单服务器在生成订单的第一预设时间内接收到第一终端对所述订单的状态变更请求时,执行状态变更处理,并将状态变更信息发送至消息服务器,所述状态变更信息包括与所述订单相关的第二终端标识;
消息服务器根据所述状态变更信息生成对应的推送消息,将所述推送消息发送至推送平台;
所述推送平台将所述推送消息推送至所述第二终端标识对应的第二终端,若所述推送消息推送失败,则将推送失败结果上报给所述消息服务器;
所述消息服务器根据所述推送失败结果,将所述推送消息保存至缓存数据库,所述缓存数据库包括ES数据库或Redis数据库;
所述第二终端向第二终端服务器发送订单状态的轮询请求,所述轮询请求包括所述第二终端标识;
第二终端服务器在接收到所述轮询请求时,根据所述第二终端标识,查询所述缓存数据库是否存在所述第二终端标识对应的推送消息,并获取查询结果对应的标识信息,将所述标识信息发送至所述第二终端;
所述第二终端若根据所述标识信息确定有未收到的推送消息,则更新订单状态。
2.根据权利要求1所述的方法,其特征在于,所述第二终端服务器在接收到所述轮询请求时,根据所述第二终端标识,查询所述缓存数据库是否存在所述第二终端标识对应的推送消息,并获取查询结果对应的标识信息,将所述标识信息发送至所述第二终端,包括:
第二终端服务器在接收到所述轮询请求时,将所述轮询请求发送至所述缓存数据库;
所述缓存数据库根据所述状态轮询请求中的第二终端标识,查询是否存在所述第二终端标识对应的推送消息,并生成查询结果对应的标识信息,将所述标识信息返回至所述第二终端服务器;
所述第二终端服务器将所述标识信息发送至所述第二终端。
3.根据权利要求2所述的方法,其特征在于,在所述将所述标识信息返回至所述第二终端服务器之后,还包括:
所述缓存数据库删除所述第二终端标识对应的推送消息。
4.根据权利要求1所述的方法,其特征在于,所述第二终端若根据所述标识信息确定有未收到的推送消息,则更新订单状态,包括:
所述第二终端若根据所述标识信息确定有未收到的推送消息,则发送订单同步请求给所述第二终端服务器;
所述第二终端服务器将所述订单同步请求转发至所述订单服务器;
所述订单服务器根据所述订单同步请求查询所述第二终端标识对应的订单状态,并将所述订单状态发送至所述第二终端服务器;
所述第二终端服务器将所述订单状态转发给所述第二终端;
所述第二终端根据所述订单状态更新自身存储的订单状态。
5.根据权利要求1所述的方法,其特征在于,所述状态变更请求为订单取消请求。
6.一种订单状态同步***,其特征在于,包括:
第一终端,用于在生成订单的第一预设时间内向订单服务器发送对所述订单的状态变更请求;
订单服务器,用于在生成订单的第一预设时间内接收到第一终端对所述订单的状态变更请求时,执行状态变更处理,并将状态变更信息发送至消息服务器,所述状态变更信息包括与所述订单相关的第二终端标识;
消息服务器,用于根据所述状态变更信息生成对应的推送消息,将所述推送消息发送至推送平台;
推送平台,用于将所述推送消息推送至所述第二终端标识对应的第二终端,若所述推送消息推送失败,则将推送失败结果上报给所述消息服务器;
所述消息服务器,还用于根据所述推送失败结果,将所述推送消息保存至缓存数据库;
缓存数据库,包括ES数据库或Redis数据库,用于保存所述推送平台推送失败的推送消息;
第二终端,用于向第二终端服务器发送订单状态的轮询请求,所述轮询请求包括所述第二终端标识;
第二终端服务器,用于在接收到所述轮询请求时,根据所述第二终端标识,查询所述缓存数据库是否存在所述第二终端标识对应的推送消息,并获取查询结果对应的标识信息,将所述标识信息发送至所述第二终端;
所述第二终端,还用于若根据所述标识信息确定有未收到的推送消息,则更新订单状态。
7.根据权利要求6所述的***,其特征在于,所述第二终端服务器根据所述第二终端标识,查询所述缓存数据库是否存在所述第二终端标识对应的推送消息,并获取查询结果对应的标识信息的步骤包括:
第二终端服务器在接收到所述第二终端的轮询请求时,将所述轮询请求发送至所述缓存数据库;
所述缓存数据库根据所述轮询请求中的第二终端标识,查询是否存在所述第二终端标识对应的推送消息,并生成查询结果对应的标识信息,将所述标识信息返回至所述第二终端服务器;
所述第二终端服务器将所述标识信息发送至所述第二终端。
8.根据权利要求7所述的***,其特征在于,所述缓存数据库还用于:
在将所述标识信息返回至第二终端服务器之后,删除所述第二终端标识对应的推送消息。
9.根据权利要求6所述的***,其特征在于,所述第二终端更新订单状态的步骤包括:
所述第二终端若根据所述标识信息确定有未收到的推送消息,则发送订单同步请求给所述第二终端服务器;
所述第二终端服务器将所述订单同步请求转发至所述订单服务器;
所述订单服务器根据所述订单同步请求查询所述第二终端标识对应的订单状态,并将所述订单状态发送至所述第二终端服务器;
所述第二终端服务器将所述订单状态转发给所述第二终端;
所述第二终端根据所述订单状态更新自身存储的订单状态。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至5任意一项所述的订单状态同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911136844.8A CN110912980B (zh) | 2019-11-19 | 2019-11-19 | 订单状态同步方法、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911136844.8A CN110912980B (zh) | 2019-11-19 | 2019-11-19 | 订单状态同步方法、***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110912980A CN110912980A (zh) | 2020-03-24 |
CN110912980B true CN110912980B (zh) | 2023-09-01 |
Family
ID=69818079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911136844.8A Active CN110912980B (zh) | 2019-11-19 | 2019-11-19 | 订单状态同步方法、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110912980B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112418848A (zh) * | 2020-11-19 | 2021-02-26 | 建信金融科技有限责任公司 | 一种订单处理方法、装置、计算机设备和存储介质 |
CN112465599B (zh) * | 2020-12-04 | 2023-11-07 | 车智互联(北京)科技有限公司 | 订单处理方法、订单处理***及计算设备 |
CN112910987A (zh) * | 2021-01-28 | 2021-06-04 | 长沙市到家悠享网络科技有限公司 | 消息推送方法、***、装置、设备及存储介质 |
CN113065912A (zh) * | 2021-03-03 | 2021-07-02 | 南京苏宁软件技术有限公司 | 监控订单状态不同步的订单的方法、装置、设备和介质 |
CN113595870B (zh) * | 2021-06-29 | 2023-04-18 | 北京百度网讯科技有限公司 | 推送消息的处理方法、装置、电子设备及存储介质 |
CN114157613A (zh) * | 2021-11-11 | 2022-03-08 | 珠海格力电器股份有限公司 | 数据上报的方法、网关、服务器、电子设备以及存储介质 |
CN115190122B (zh) * | 2022-06-15 | 2023-11-28 | 云南腾云信息产业有限公司 | 基于区块链的行程关联方法、装置、设备及存储介质 |
CN117478504B (zh) * | 2023-12-22 | 2024-03-29 | 深圳万物安全科技有限公司 | 信息传输方法、装置、终端设备以及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156863A (zh) * | 2014-08-08 | 2014-11-19 | 携程计算机技术(上海)有限公司 | Ota网站的订单处理***及方法 |
CN104270302A (zh) * | 2014-09-22 | 2015-01-07 | 上海钢有商贸有限公司 | 在线订单的传送***及传送方法 |
CN105139191A (zh) * | 2015-09-15 | 2015-12-09 | 联动优势电子商务有限公司 | 一种获取订单信息的方法及设备 |
CN106296352A (zh) * | 2016-08-04 | 2017-01-04 | 多点生活(中国)网络科技有限公司 | 订单数据处理方法和装置 |
CN107239987A (zh) * | 2017-04-24 | 2017-10-10 | 北京小度信息科技有限公司 | 订单处理方法及装置 |
CN109447750A (zh) * | 2018-10-24 | 2019-03-08 | 拉扎斯网络科技(上海)有限公司 | 一种服务器、订单处理方法及*** |
CN109688196A (zh) * | 2018-11-19 | 2019-04-26 | 北京三快在线科技有限公司 | 订单状态的推送方法、装置、电子设备及可读存储介质 |
CN110175805A (zh) * | 2019-06-04 | 2019-08-27 | 秒针信息技术有限公司 | 一种外卖消息的推送方法、推送装置、设备和介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114880B2 (en) * | 2014-03-31 | 2018-10-30 | Walmart Apollo, Llc | Synchronizing database data to a database cache |
-
2019
- 2019-11-19 CN CN201911136844.8A patent/CN110912980B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156863A (zh) * | 2014-08-08 | 2014-11-19 | 携程计算机技术(上海)有限公司 | Ota网站的订单处理***及方法 |
CN104270302A (zh) * | 2014-09-22 | 2015-01-07 | 上海钢有商贸有限公司 | 在线订单的传送***及传送方法 |
CN105139191A (zh) * | 2015-09-15 | 2015-12-09 | 联动优势电子商务有限公司 | 一种获取订单信息的方法及设备 |
CN106296352A (zh) * | 2016-08-04 | 2017-01-04 | 多点生活(中国)网络科技有限公司 | 订单数据处理方法和装置 |
CN107239987A (zh) * | 2017-04-24 | 2017-10-10 | 北京小度信息科技有限公司 | 订单处理方法及装置 |
CN109447750A (zh) * | 2018-10-24 | 2019-03-08 | 拉扎斯网络科技(上海)有限公司 | 一种服务器、订单处理方法及*** |
CN109688196A (zh) * | 2018-11-19 | 2019-04-26 | 北京三快在线科技有限公司 | 订单状态的推送方法、装置、电子设备及可读存储介质 |
CN110175805A (zh) * | 2019-06-04 | 2019-08-27 | 秒针信息技术有限公司 | 一种外卖消息的推送方法、推送装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110912980A (zh) | 2020-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110912980B (zh) | 订单状态同步方法、***及存储介质 | |
US7366738B2 (en) | Method and system for object cache synchronization | |
US20070094336A1 (en) | Asynchronous server synchronously storing persistent data batches | |
CN111225012A (zh) | 事务处理方法、装置和设备 | |
CN111901705B (zh) | 一种olt设备的omci功能虚拟化*** | |
CN107870982B (zh) | 数据处理方法、***和计算机可读存储介质 | |
CN110719187B (zh) | 配置管理方法、***及计算机可读存储介质 | |
CN110543512B (zh) | 一种信息同步方法,装置及*** | |
CN110837409A (zh) | 一种定时执行任务的方法和*** | |
CN106385382B (zh) | 一种数据同步方法、装置和*** | |
CN111460038A (zh) | 一种数据准实时同步方法及装置 | |
CN113836155A (zh) | 基于分布式***的数据处理方法、装置及存储介质 | |
CN112492037A (zh) | 数据处理***及方法 | |
CN102739562B (zh) | 一种收藏信息的发送方法及设备 | |
CN107563942B (zh) | 一种物流数据批量处理方法、物流处理***以及处理装置 | |
EP3649532B1 (en) | Methods, systems, databases and network nodes of data communication networks for handling data posts | |
CN113364830B (zh) | 一种长链接的缓存优化方法及*** | |
CN112965835A (zh) | 一种效率高的展示离线消息的方法及终端 | |
CN112949326B (zh) | 信息查询方法、装置、设备和计算机可读介质 | |
CN114706923A (zh) | 数据同步方法、装置、电子设备和存储介质 | |
CN112860746A (zh) | 一种基于缓存削减的方法、设备及*** | |
CN113076343A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN112187916A (zh) | 一种跨***的数据同步方法与装置 | |
CN113783826A (zh) | 一种微服务异常处理方法和装置 | |
CN112181671A (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 |