CN110866001A - 确定待处理订单的方法和装置 - Google Patents

确定待处理订单的方法和装置 Download PDF

Info

Publication number
CN110866001A
CN110866001A CN201810955510.2A CN201810955510A CN110866001A CN 110866001 A CN110866001 A CN 110866001A CN 201810955510 A CN201810955510 A CN 201810955510A CN 110866001 A CN110866001 A CN 110866001A
Authority
CN
China
Prior art keywords
order
value
index value
message
identifier
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.)
Pending
Application number
CN201810955510.2A
Other languages
English (en)
Inventor
靳海峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201810955510.2A priority Critical patent/CN110866001A/zh
Publication of CN110866001A publication Critical patent/CN110866001A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • G06Q30/0635Processing of requisition or of purchase orders

Landscapes

  • 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)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种确定待处理订单的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:从订单校核消息中获取订单标识;根据订单标识计算索引值,然后从散列表中查找索引值所对应位置的值,其中,散列表中预先保存根据订单标识计算得到的索引值所对应位置的值;当查找到的值为1且数据库中存在该订单时,将该订单作为待处理订单。该实施方式能够实现仅投入极小的资源量即可进行大量数据的判定,减少了系统资源消耗,降低了消息积压量,提升了系统的业务支撑能力。

Description

确定待处理订单的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种确定待处理订单的方法和装置。
背景技术
订单系统作为电商体系的核心基础服务,其业务形态异常复杂,从订单创建到发货以及售后,横跨多个业务生产部门,承载着巨大的业务流量。基于自身稳定性与性能方面的考虑,它通常提供消息订阅的方式供其它系统对接。每条订单都有多个状态,每个状态都由专门的项目团队负责校核处理,每个状态之间的切换都会发送不同主题的消息。例如:在订单付款之后,每条业务线会有相应的校核团队对付款金额进行校核,以判断该订单是否已完成付款,以便进行配货。
由于电商平台包括多个业务部门,各个业务部门或各条业务线基于自身的业务需求,通常都有对接订单消息的需求,且各个业务部门或各业务线仅需对本业务部门或本业务线的订单消息进行分析处理以得到业务相关数据。一般情况下,在订单创建时,订单创建消息提供的字段信息比较完整(例如:包括了可以标识业务线的信息),从而可以在对订单创建消息进行处理时即根据标识业务线的信息过滤出不同业务线的消息,并进行分类保存,以便各个业务线处理本业务线相关的消息;而在后续进行订单校核时,一般订单校核消息中仅包括了订单号等订单标识信息,不会包括业务线信息,此时因订单校核消息中未包括完整的字段信息,故而无法直接判断一个订单校核消息是哪个业务线的消息。
当无法根据消息内容判断一个订单是否为对应业务线的订单时,现有技术一般有以下两种技术方案:
方案1、通过将订单流程中的订单创建消息接入、过滤后存入对应业务线的数据库中,并以订单标识ID(IDentity)字段建立索引,提供反查机制。当后续流程中的订单校核消息接入后,各业务线可以根据该消息中包括的订单ID,通过反查数据库中相应记录是否已存在,从而确定是否为该业务线订单;
方案2、将订单流程中的订单创建消息接入、过滤后存入对应业务线的数据库,同时将订单ID作为Key存入缓存中,提供反查机制。后续流程中的订单校核消息接入后,可以通过反查缓存中该消息中包括的订单ID是否已存在,从而确定是否为该业务线订单。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1、现有的两种方案都需要占用大量的存储介质,耗费大量系统资源,严重影响系统的业务支撑能力;
2、查询效率不够高,无法应付订单消息洪流,消息积压严重。
发明内容
有鉴于此,本发明实施例提供一种确定待处理订单的方法和装置,能够实现仅投入极小的资源量即可进行大量数据的判定,减少了系统资源消耗,降低了消息积压量,提升了系统的业务支撑能力。
为实现上述目的,根据本发明实施例的一个方面,提供了一种确定待处理订单的方法。
一种确定待处理订单的方法,包括:从订单校核消息中获取订单标识;根据所述订单标识计算索引值,然后从散列表中查找所述索引值所对应位置的值,其中,所述散列表中预先保存根据订单标识计算得到的索引值所对应位置的值;当查找到的值为1且数据库中存在所述订单时,将所述订单作为待处理订单。
可选地,根据所述订单标识计算索引值,然后从散列表中查找所述索引值所对应位置的值包括:使用布隆过滤器根据所述订单标识计算索引值,然后从所述布隆过滤器的位阵列中查找所述索引值所对应位置的值。
可选地,从订单校核消息中获取订单标识包括:对订单校核消息进行反序列化处理以生成订单校核对象,然后获取所述订单校核对象中的订单标识。
可选地,还包括:当查找到的值不为1或查找到的值为1但数据库中不存在所述订单时,不对所述订单进行处理。
根据本发明实施例的另一方面,提供了一种确定待处理订单的装置。
一种确定待处理订单的装置,包括:标识获取模块,用于从订单校核消息中获取订单标识;索引查找模块,用于根据所述订单标识计算索引值,然后从散列表中查找所述索引值所对应位置的值,其中,所述散列表中预先保存根据订单标识计算得到的索引值所对应位置的值;订单确定模块,用于当查找到的值为1且数据库中存在所述订单时,将所述订单作为待处理订单。
可选地,所述索引查找模块还用于:使用布隆过滤器根据所述订单标识计算索引值,然后从所述布隆过滤器的位阵列中查找所述索引值所对应位置的值。
可选地,所述标识获取模块还用于:对订单校核消息进行反序列化处理以生成订单校核对象,然后获取所述订单校核对象中的订单标识。
可选地,所述订单确定模块还用于:当查找到的值不为1或查找到的值为1但数据库中不存在所述订单时,不对所述订单进行处理。
根据本发明实施例的又一方面,提供了一种确定待处理订单的电子设备。
一种确定待处理订单的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的确定待处理订单的方法。
根据本发明实施例的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的确定待处理订单的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过根据消息中的订单标识计算索引值,然后从散列表中查找索引值对应位置的值,当查找到的值为1且数据库中存在该订单时,确定该订单为该业务线的待处理订单,实现了基于位图的算法来替代数据库查询、缓存查询等技术手段,仅需投入极小的资源量即可进行大量数据的判定,减少了系统资源消耗,降低了消息积压量,提升了系统的业务支撑能力。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是现有技术方案1的实现流程示意图;
图2是根据本发明实施例的确定待处理订单的方法的主要步骤示意图;
图3是本发明实施例的实现流程示意图;
图4是根据本发明实施例的确定待处理订单的装置的主要模块示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
根据现有技术的技术方案,当无法根据消息内容判断一个订单是否为对应业务线的订单时,方案1是通过将订单流程中的订单创建消息接入、过滤后存入对应业务线的数据库中,并以订单标识ID(IDentity)字段建立索引,提供反查机制。当后续流程中的订单校核消息接入后,各业务线可以根据该消息中包括的订单ID,通过反查数据库中相应记录是否已存在,从而确定是否为该业务线订单。
图1是现有技术方案1的实现流程示意图。每条业务线的订单处理系统根据图1的流程进行订单的处理。如图1所示,方案1主要可以包括以下步骤:
1、订阅消息中间件生成的订单创建消息;
2、当监听到订单创建消息(OrderPipe_Submit)时,获取订单创建消息;
3、反序列化订单创建消息以生成订单对象;
4、根据业务线编码(还可以包括其他的过滤条件,可根据业务需要进行灵活设定)过滤该订单是否为本业务线订单;
5、保存本业务线订单到数据库;
6、订阅消息中间件生成的订单校核消息;
7、当监听到订单校核消息(例如:财务对账消息)时,获取订单校核消息;
8、反序列化订单校核消息以生成订单校核对象;
9、判定该订单校核消息对应的订单是否为当前业务线订单:由于订单校核对象中字段信息不全,无法直接根据订单校核对象中的字段信息判断该订单是否为本业务线订单,所以只能根据订单ID到保存本业务线订单的数据库中查询该订单ID是否存在;
10、如果存在,则可判定该订单属于本业务线,需要对该订单进行处理并更新数据库中的订单状态;否则可判定该订单不属于本业务线。
采用方案1,数据库需扛住订单校核消息(不仅包括财务对账消息,还包括其他的校核消息)查询的巨大的消息流量,需要复杂的技术方案,耗费更多的计算、存储资源,并且仍不能满足高并发流量洪峰所带来的压力,消息仍会有堆积。
为了缓解数据库的巨大压力,方案2在方案1的基础上做了改进,从架构层面来讲,增加了缓存层,从而改善了查询性能,减轻了消息堆积压力,具体改进如下:
1、在方案1中步骤5保存订单的同时,以订单ID作为Key,插入缓存中以构建缓存集合;
2、相应地,将方案1中步骤9中修改为从缓存中查询判断该订单ID是否在本业务线的订单集合中,从而减轻了数据库方面的压力。
方案2在一定程度上缓解了数据库的查询压力,并且消息堆积问题也得到一定的缓解,但它需要耗费大量、宝贵的内存资源,仍然有进一步优化改进的空间。
本发明就是针对于现有技术中存在的缺点进行了改进,采用了一种基于位图的算法来替代数据库查询、缓存查询等技术手段,减少系统资源消耗、降低消息积压、提升系统的业务支撑能力。本发明在实现时,可以采用散列表的数据结构来保存由订单标识计算得到的索引值所在位置的值。散列表(Hash table,也叫哈希表),是根据关键码值(Keyvalue)而直接进行访问的数据结构,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度,这个映射函数叫做散列函数,存放记录的数组叫做散列表。
在本发明的实施例中,可基于布隆过滤器来实现对订单标识的运算和对运算得到的索引值所在位置的值的保存。布隆过滤器BloomFilter本质上是一种Hash位图算法,集合(或阵列、数组)中的一个元素标识位占一位,对该元素计算Hash值,就可以确定出其在集合中的索引,根据该索引的值为0还是1,判断该元素是否包含在集合中。由于每个标识位只占一位的存储空间,所以可以有效压缩的存储空间,节省了宝贵的系统资源。
图2是根据本发明实施例的确定待处理订单的方法的主要步骤示意图。如图2所示,本发明实施例的确定待处理订单的方法主要包括如下的步骤S201至步骤S203。
步骤S201:从订单校核消息中获取订单标识;
步骤S202:根据订单标识计算索引值,然后从散列表中查找索引值所对应位置的值,其中,散列表中预先保存根据订单标识计算得到的索引值所对应位置的值;
步骤S203:当查找到的值为1且数据库中存在该订单时,将该订单作为待处理订单。
订单校核消息一般是XML(Extensible Markup Language,可扩展标记语言)文件或JSON(JavaScript Object Notation,JS对象简谱)文件。在获取到订单校核消息之后,需要从订单校核消息中获取订单标识。为了便于进行数据存储或传输,一般会对对象进行序列化处理,而在接收到或获取到对应的序列化数据后,需要将其进行反序列化以得到对应的对象,从而对该对象进行进一步的处理或操作。在本发明的实施例中,订单校核消息即可认为是一串便于进行传输的序列化后的数据,因此,在接收到订单校核消息之后,需要对其进行反序列化处理以生成订单校核对象,从而便于获取订单校核对象中的订单标识。在对订单校核消息进行反序列化处理时,可以使用常用的序列化/反序列化工具,例如:XStream等来进行处理,也可以自定义序列化/反序列化工具以进行处理。
获取订单标识之后,即可通过对订单标识进行哈希运算以计算索引值,然后根据索引值从散列表中查找其对应位置的值。根据本发明的实施例,可以使用布隆过滤器根据订单标识计算索引值,然后从布隆过滤器的位阵列中查找索引值所对应位置的值。
根据本发明的实施例,散列表中预先保存了根据订单标识计算得到的索引值所对应位置的值。在订单创建时,订单创建消息中包括了完整的字段信息,通过根据业务线标识等信息对订单创建消息进行过滤,即可得到每条业务线对应的订单,并将这些订单保存到对应业务线的数据库中。同时,还将这些订单的订单标识(订单ID)进行哈希运算以得到索引值,并根据该索引值将散列表中该索引值对应的位置的值设置为1。此时确定的订单肯定为该业务线对应的订单,因此,通过将由订单标识得到的索引值的对应位置的值设置为1,即可标识该订单属于该业务线。
故而在接收到订单校核消息时,根据由订单标识计算得到的索引值,即可在散列表中查找其对应位置的值。若不为1(默认为0),则说明该订单不是该业务线的订单,忽略该订单,不对其进行处理。其中,当查找到的对应位置的值为1时,也并不一定是该业务线的订单,还需要进一步进行判定。这是因为在进行哈希运算时,可能会出现哈希碰撞,即:如果两个哈希值相同,两个输入值很可能是相同的,但不绝对肯定二者一定相同。
具体地,当查找到的对应位置的值为1时,还需要根据订单标识到数据库中查找该订单标识是否在该业务线对应的数据库中,如果在,则可判定该订单属于该业务线,否则,该订单不是该业务线的订单,忽略该订单,不对其进行处理。由于通过对订单标识进行哈希运算并从散列表中查找对应位置的值,即可滤除绝大部分不属于该业务线的订单,因此,此时仅有极少量的订单需要从数据库中进行查找,从而极大降低了数据库查询的压力,提升了查询效率,解决了消息积压的问题。
图3是本发明实施例的实现流程示意图。如图3所示,本发明的实施例主要包括如下的步骤:
1、订阅消息中间件生成的订单创建消息,其中,消息中间件用于当事件(订单创建、订单校核等)发生时,生成相应的消息以便通知订阅了该事件消息的业务系统,业务系统通过订阅消息中间件生成的消息可以实时获取关注的事件消息;
2、当监听到订单创建消息时,获取订单创建消息;
3、反序列化订单创建消息以生成订单对象;
4、根据业务线编码(还可以包括其他的过滤条件,可根据业务需要进行灵活设定)过滤该订单是否为本业务线订单;
5、保存本业务线订单到数据库,同时通过将订单ID输入布隆过滤器BloomFilter中,以实现对订单ID进行Hash运算得到索引值,并将BloomFilter的位阵列中该索引值所在位置的值设置为1;
6、订阅消息中间件生成的订单校核消息;
7、当监听到订单校核消息(例如:财务对账消息)时,获取订单校核消息;
8、反序列化订单校核消息以生成订单校核对象;
9、判定该订单校核消息对应的订单是否为本业务线订单:从订单校核对象中获取订单ID,然后通过布隆过滤器BloomFilter对订单ID做Hash运算,得到索引值,根据得到的索引值,查找BloomFilter的位阵列中该索引值对应位置处的值。其中,若查找到的值为0,则说明该订单不是本业务线的订单,直接退出,无需进行进一步处理;若查找到的值为1,则由于BloomFilter存在一定的误识别率,故而需要进一步判定,参见步骤10;
10、根据订单ID,从本业务线对应的订单数据库中查找该订单ID,若数据库中存在该订单ID,则可判定该订单属于本业务线,将该订单确定为待处理订单,以便对该订单进行进一步处理,并更新数据库中该订单的状态;若不存在,则可判定为BloomFilter发生了误报,该订单不属于本业务线,忽略该订单,无需进行进一步处理。
图4是根据本发明实施例的确定待处理订单的装置的主要模块示意图。如图4所示,本发明实施例的确定待处理订单的装置400主要包括标识获取模块401、索引查找模块402和订单确定模块403。
标识获取模块401用于从订单校核消息中获取订单标识;
索引查找模块402用于根据订单标识计算索引值,然后从散列表中查找索引值所对应位置的值,其中,散列表中预先保存根据订单标识计算得到的索引值所对应位置的值;
订单确定模块403用于当查找到的值为1且数据库中存在该订单时,将该订单作为待处理订单。
根据本发明的一个实施例,索引查找模块402还可以用于:
使用布隆过滤器根据订单标识计算索引值,然后从布隆过滤器的位阵列中查找索引值所对应位置的值。
根据本发明的另一个实施例,标识获取模块401还可以用于:
对订单校核消息进行反序列化处理以生成订单校核对象,然后获取订单校核对象中的订单标识。
根据本发明的又一个实施例,订单确定模块403还可以用于:
当查找到的值不为1或查找到的值为1但数据库中不存在该订单时,不对该订单进行处理。
根据本发明实施例的技术方案,通过根据消息中的订单标识计算索引值,然后从散列表中查找索引值对应位置的值,当查找到的值为1且数据库中存在该订单时,确定该订单为该业务线的待处理订单,实现了基于位图的算法来替代数据库查询、缓存查询等技术手段,仅需投入极小的资源量即可进行大量数据的判定,减少了系统资源消耗,降低了消息积压量,提升了系统的业务支撑能力。
图5示出了可以应用本发明实施例的确定待处理订单的方法或确定待处理订单的装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的确定待处理订单的方法一般由服务器505执行,相应地,确定待处理订单的装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统600的结构示意图。图6示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括标识获取模块、索引查找模块和订单确定模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,标识获取模块还可以被描述为“用于从订单校核消息中获取订单标识的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:从订单校核消息中获取订单标识;根据所述订单标识计算索引值,然后从散列表中查找所述索引值所对应位置的值,其中,所述散列表中预先保存根据订单标识计算得到的索引值所对应位置的值;当查找到的值为1且数据库中存在所述订单时,将所述订单作为待处理订单。
根据本发明实施例的技术方案,通过根据消息中的订单标识计算索引值,然后从散列表中查找索引值对应位置的值,当查找到的值为1且数据库中存在该订单时,确定该订单为该业务线的待处理订单,实现了基于位图的算法来替代数据库查询、缓存查询等技术手段,仅需投入极小的资源量即可进行大量数据的判定,减少了系统资源消耗,降低了消息积压量,提升了系统的业务支撑能力。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种确定待处理订单的方法,其特征在于,包括:
从订单校核消息中获取订单标识;
根据所述订单标识计算索引值,然后从散列表中查找所述索引值所对应位置的值,其中,所述散列表中预先保存根据订单标识计算得到的索引值所对应位置的值;
当查找到的值为1且数据库中存在所述订单时,将所述订单作为待处理订单。
2.根据权利要求1所述的方法,其特征在于,根据所述订单标识计算索引值,然后从散列表中查找所述索引值所对应位置的值包括:
使用布隆过滤器根据所述订单标识计算索引值,然后从所述布隆过滤器的位阵列中查找所述索引值所对应位置的值。
3.根据权利要求1所述的方法,其特征在于,从订单校核消息中获取订单标识包括:
对订单校核消息进行反序列化处理以生成订单校核对象,然后获取所述订单校核对象中的订单标识。
4.根据权利要求1所述的方法,其特征在于,还包括:当查找到的值不为1或查找到的值为1但数据库中不存在所述订单时,不对所述订单进行处理。
5.一种确定待处理订单的装置,其特征在于,包括:
标识获取模块,用于从订单校核消息中获取订单标识;
索引查找模块,用于根据所述订单标识计算索引值,然后从散列表中查找所述索引值所对应位置的值,其中,所述散列表中预先保存根据订单标识计算得到的索引值所对应位置的值;
订单确定模块,用于当查找到的值为1且数据库中存在所述订单时,将所述订单作为待处理订单。
6.根据权利要求5所述的装置,其特征在于,所述索引查找模块还用于:
使用布隆过滤器根据所述订单标识计算索引值,然后从所述布隆过滤器的位阵列中查找所述索引值所对应位置的值。
7.根据权利要求5所述的装置,其特征在于,所述标识获取模块还用于:
对订单校核消息进行反序列化处理以生成订单校核对象,然后获取所述订单校核对象中的订单标识。
8.根据权利要求5所述的装置,其特征在于,所述订单确定模块还用于:
当查找到的值不为1或查找到的值为1但数据库中不存在所述订单时,不对所述订单进行处理。
9.一种确定待处理订单的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-4中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-4中任一所述的方法。
CN201810955510.2A 2018-08-21 2018-08-21 确定待处理订单的方法和装置 Pending CN110866001A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810955510.2A CN110866001A (zh) 2018-08-21 2018-08-21 确定待处理订单的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810955510.2A CN110866001A (zh) 2018-08-21 2018-08-21 确定待处理订单的方法和装置

Publications (1)

Publication Number Publication Date
CN110866001A true CN110866001A (zh) 2020-03-06

Family

ID=69651011

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810955510.2A Pending CN110866001A (zh) 2018-08-21 2018-08-21 确定待处理订单的方法和装置

Country Status (1)

Country Link
CN (1) CN110866001A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414367A (zh) * 2020-03-31 2020-07-14 中国建设银行股份有限公司 获取参数的方法和装置
CN112328603A (zh) * 2020-11-17 2021-02-05 北京沃东天骏信息技术有限公司 用户请求处理方法、装置、设备和计算机可读介质
CN113743975A (zh) * 2021-01-29 2021-12-03 北京沃东天骏信息技术有限公司 一种广告效果处理方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663090A (zh) * 2012-04-10 2012-09-12 华为技术有限公司 元数据查询方法和装置
CN104572727A (zh) * 2013-10-22 2015-04-29 阿里巴巴集团控股有限公司 一种数据查询方法及装置
CN106445944A (zh) * 2015-08-06 2017-02-22 阿里巴巴集团控股有限公司 一种数据查询请求的处理方法、装置及电子设备
CN107291923A (zh) * 2017-06-29 2017-10-24 北京京东尚科信息技术有限公司 信息处理方法和装置
CN107491487A (zh) * 2017-07-17 2017-12-19 中国科学院信息工程研究所 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663090A (zh) * 2012-04-10 2012-09-12 华为技术有限公司 元数据查询方法和装置
CN104572727A (zh) * 2013-10-22 2015-04-29 阿里巴巴集团控股有限公司 一种数据查询方法及装置
CN106445944A (zh) * 2015-08-06 2017-02-22 阿里巴巴集团控股有限公司 一种数据查询请求的处理方法、装置及电子设备
CN107291923A (zh) * 2017-06-29 2017-10-24 北京京东尚科信息技术有限公司 信息处理方法和装置
CN107491487A (zh) * 2017-07-17 2017-12-19 中国科学院信息工程研究所 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414367A (zh) * 2020-03-31 2020-07-14 中国建设银行股份有限公司 获取参数的方法和装置
CN112328603A (zh) * 2020-11-17 2021-02-05 北京沃东天骏信息技术有限公司 用户请求处理方法、装置、设备和计算机可读介质
CN113743975A (zh) * 2021-01-29 2021-12-03 北京沃东天骏信息技术有限公司 一种广告效果处理方法和装置

Similar Documents

Publication Publication Date Title
CN110019350B (zh) 基于配置信息的数据查询方法和装置
CN111190888A (zh) 一种管理图数据库集群的方法和装置
CN111460129B (zh) 标识生成的方法、装置、电子设备和存储介质
CN110866001A (zh) 确定待处理订单的方法和装置
CN110795315A (zh) 监控业务的方法和装置
CN116450622B (zh) 数据入库的方法、装置、设备和计算机可读介质
CN110928594A (zh) 服务开发方法和平台
CN112948138A (zh) 一种处理消息的方法和装置
CN115905322A (zh) 业务处理方法、装置、电子设备及存储介质
CN115190125A (zh) 一种缓存集群的监控方法和装置
CN111723063A (zh) 一种离线日志数据处理的方法和装置
CN109087097B (zh) 一种更新链码同一标识的方法和装置
CN112711572B (zh) 适用于分库分表的在线扩容方法和装置
CN113762910A (zh) 一种单据监控方法和装置
CN113282455A (zh) 一种监控处理方法和装置
CN113760695A (zh) 一种定位问题代码的方法和装置
CN112699116A (zh) 一种数据处理方法和系统
CN112131287A (zh) 一种读取数据的方法和装置
CN110866002A (zh) 分表数据处理的方法和装置
CN112448931B (zh) 网络劫持监控方法和装置
CN110262756B (zh) 用于缓存数据的方法和装置
CN117555885A (zh) 数据预处理方法和装置
CN113760965A (zh) 数据查询的方法和装置
CN115495316A (zh) 一种页面历史维护记录的管理方法和装置
CN113778847A (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