CN106612301B - 更新数据的推送方法和装置 - Google Patents
更新数据的推送方法和装置 Download PDFInfo
- Publication number
- CN106612301B CN106612301B CN201510691324.9A CN201510691324A CN106612301B CN 106612301 B CN106612301 B CN 106612301B CN 201510691324 A CN201510691324 A CN 201510691324A CN 106612301 B CN106612301 B CN 106612301B
- Authority
- CN
- China
- Prior art keywords
- data
- subscription
- client
- inquiry request
- caching
- 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
-
- 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)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种更新数据的推送方法和装置,所述方法包括:接收客户端发送的第一查询请求;根据所述第一查询请求所携带的查询条件查找相关联的订阅号;根据查找到的订阅号从缓存中获取相应的订阅数据;将获取的订阅数据返回给所述客户端;将所述第一查询请求所携带的客户端标识存储到所述订阅号关联的客户端标识列表中;当缓存中与所述订阅号相应的订阅数据更新时,根据与所述订阅号关联的所述客户端标识列表推送缓存中更新的订阅数据。这样减少了由于广播推送产生的大量数据,避免了由于大量广播推送数据占用传输通道而导致网络拥堵,降低了更新数据的传输速度,从而使更新效率降低的情形。
Description
技术领域
本发明涉及数据传输领域,特别是涉及一种更新数据的推送方法和装置。
背景技术
随着全球物流业的快速发展,物流流转速度越来越快。作为全球物流运转枢纽的集装箱码头对数据传输技术依赖度较高,主要利用码头操作系统(TOS,TerminalOperation System)反映集装箱的数据,并为码头计划和控制作业等提供最优方案。
TOS系统性能直接影响集装箱码头效率和竞争力,系统改进及提升成为集装箱码头建设的重要部分。TOS系统中的更新数据采用实时服务器进行广播推送的形式发送给客户端,广播推送数据会大量占用网络数据传输通道,且容易造成网络拥堵,更新数据传输速度降低,使得数据更新效率降低。
发明内容
基于此,有必要针对因广播推送数据大量占用传输通道而降低数据更新效率的问题,提供一种更新数据的推送方法和装置。
一种更新数据的推送方法,所述方法包括:
接收客户端发送的第一查询请求;
根据所述第一查询请求所携带的查询条件查找相关联的订阅号;
根据查找到的订阅号从缓存中获取相应的订阅数据;
将获取的订阅数据返回给所述客户端;
将所述第一查询请求所携带的客户端标识存储到所述订阅号关联的客户端标识列表中;
当缓存中与所述订阅号相应的订阅数据更新时,根据与所述订阅号关联的所述客户端标识列表推送缓存中更新的订阅数据。
在其中一个实施例中,所述方法还包括:
接收业务服务器将更新数据放入消息队列后发送的更新通知;
根据所述更新通知获取所述消息队列中的所述更新数据;
根据所述更新数据更新缓存中的订阅数据。
在其中一个实施例中,所述接收业务服务器将更新数据放入消息队列后发送的更新通知,包括:
在业务服务器根据客户端的业务调用更新数据库并提取更新数据后,接收所述业务服务器将提取的所述更新数据放入消息队列后发送的更新通知。
在其中一个实施例中,所述根据所述第一查询请求所携带的查询条件查找相关联的订阅号之后,还包括:
若未查找到所述订阅号,则创建与所述查询条件相关联的订阅号;
根据所述查询条件从数据库中提取订阅数据;
将从数据库中提取的订阅数据存储在缓存中并与所述订阅号关联;
将从数据库中提取的订阅数据返回给所述客户端;
执行所述将所述第一查询请求所携带的客户端标识存储到所述订阅号关联的客户端标识列表中的步骤。
在其中一个实施例中,所述方法还包括:
将订阅号返回给所述第一查询请求中所携带的客户端标识对应的客户端;
接收所述客户端发送的携带有所述订阅号的第二查询请求;
根据所述第二查询请求所携带的所述订阅号获取缓存中相应的订阅数据;
将根据所述第二查询请求所携带的所述订阅号获取的所述订阅数据返回给所述客户端。
上述更新数据的推送方法,通过客户端的查询请求中的查询条件来查找订阅号,根据订阅号从缓存中获取的订阅数据返回给客户端,并将客户端标识存储到订阅号的关联的客户端列表中,当与订阅号对应的订阅数据有更新时,不需要通过广播推送的形式将更新数据推送到所有的客户端,而是根据与订阅号关联的客户端标识列表来推送更新数据,以将更新后的订阅数据定向推送给已经通过查询请求订阅了订阅数据的客户端。这样通过查询请求来订阅推送的方式可以将订阅数据准确推送到已经订阅客户端,减少了由于广播推送产生的大量数据,避免了由于大量广播推送数据占用传输通道而导致网络拥堵,降低了更新数据的传输速度,从而使更新效率降低的情形。
一种更新数据的推送装置,其特征在于,所述装置包括:
查询请求接收模块,用于接收客户端发送的第一查询请求;
查找模块,用于根据所述第一查询请求所携带的查询条件查找相关联的订阅号;
订阅数据获取模块,用于根据查找到的订阅号从缓存中获取相应的订阅数据;
订阅数据返回模块,用于将所述订阅数据返回给所述客户端;
客户端标识存储模块,用于将所述第一查询请求所携带的客户端标识存储到所述订阅号关联的客户端标识列表中;
推送模块,用于当缓存中与所述订阅号相应的订阅数据更新时,根据与所述订阅号关联的所述客户端标识列表推送缓存中更新的订阅数据。
在其中一个实施例中,所述装置还包括:
通知接收模块,用于接收业务服务器将更新数据放入消息队列后发送的更新通知;
更新数据获取模块,用于根据所述更新通知获取所述消息队列中的所述更新数据;
更新模块,用于根据所述更新数据更新缓存中的订阅数据。
在其中一个实施例中,所述通知接收模块还用于在业务服务器根据客户端的业务调用更新数据库并提取更新数据后,接收所述业务服务器将提取的所述更新数据放入消息队列后发送的更新通知。
在其中一个实施例中,所述装置还包括:
订阅号创建模块,用于若未查找到所述订阅号,则创建与所述查询条件相关联的订阅号;
订阅数据提取模块,用于根据所述查询条件从数据库中提取订阅数据;
存储关联模块,用于将从数据库中提取的订阅数据存储在缓存中并与所述订阅号关联;
所述订阅数据返回模块还用于将从数据库中提取的订阅数据返回给所述客户端。
在其中一个实施例中,所述装置还包括:
订阅号返回模块,将订阅号返回给所述第一查询请求中所携带的客户端标识对应的客户端;
所述查询请求接收模块还用于接收所述客户端发送的携带有所述订阅号的第二查询请求;
所述订阅数据获取模块还用于根据所述第二查询请求所携带的所述订阅号获取缓存中相应的订阅数据;
所述订阅数据返回模块还用于将根据所述第二查询请求所携带的所述订阅号获取的所述订阅数据返回给所述客户端。
上述更新数据的推送装置,查找模块通过客户端的查询请求中的查询条件来查找订阅号,订阅数据获取模块根据订阅号从缓存中获取的订阅数据,订阅数据返回模块将订阅数据返回给客户端,客户端标识存储模块将客户端标识存储到订阅号的关联的客户端列表中。当与订阅号对应的订阅数据有更新时,推送模块不需要通过广播推送的形式将更新数据推送到所有的客户端,而是根据与订阅号关联的客户端标识列表来推送更新数据,以将更新后的订阅数据定向推送给已经通过查询请求订阅了订阅数据的客户端。这样通过查询请求来订阅推送的方式可以将订阅数据准确推送到已经订阅客户端,减少了由于广播推送产生的大量数据,避免了由于大量广播推送数据占用传输通道而导致网络拥堵,降低了更新数据的传输速度,从而使更新效率降低的情形。
附图说明
图1为一个实施例中更新数据的推送系统的应用环境图;
图2为一个实施例中更新数据的推送方法的流程示意图;
图3为另一个实施例中更新缓存中数据的步骤的流程示意图;
图4为一个实施例中更新数据的推送方法的流程示意图;
图5为另一个实施例中查询数据的步骤的流程示意图;
图6为另一个实施例中更新数据的推送系统环境图;
图7为一个实施例中更新数据的推送装置的结构框图;
图8为另一个实施例中更新数据的推送装置的结构框图;
图9为再一个实施例中更新数据的推送装置的结构框图;
图10为一个实施例中更新数据的推送装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施的限制。
图1是一个实施例中更新数据的推送系统的应用环境图。更新数据的推送系统包括业务服务器110,数据服务器120和业务终端(如图1中的131、132和133),业务终端上运行着客户端。业务终端131、132及133通过网络与数据服务器120或业务服务器110连接,数据服务器120和业务服务器110也是通过网络连接。
如图2所示,提供了一种更新数据推送方法,本实施例以该方法应用于图1更新数据的推送系统中的数据服务器120来举例说明。该数据服务器120上运行有更新数据的推送方法的程序,通过更新数据的推送方法的程序来实施更新数据的推送方法。该方法包括如下步骤:
步骤202,接收客户端发送的第一查询请求。
在一个实施例中,业务终端131由于业务需求,通过互联网或者企业内部网向数据服务器120发送第一查询请求来查询并订阅业务终端131所需要的业务数据。数据服务器120通过互联网或者企业内部网络接收业务终端131发送的第一查询请求,第一查询请求中包括查询业务数据的条件和客户端标识。业务数据是基于各种业务操作产生的数据,业务数据存储在业务服务器110的数据库中。
步骤204,根据第一查询请求所携带的查询条件查找相关联的订阅号。
在一个实施例中,数据服务器120接收到业务终端131发送的第一查询请求之后,通过对第一查询请求进行解析提取第一查询请求中业务终端131的查询条件,并根据提取到的查询条件与订阅号的对应关系或者通过检索查询条件与订阅号关系映射表,查找与查询条件对应的订阅号。订阅号是与查询条件相关联的,用于业务终端和数据服务器120之间查询数据或者推送更新数据的标识。步骤206,根据查找到的订阅号从缓存中获取相应的订阅数据。
在一个实施例中,数据服务器120根据查找到的订阅号与订阅数据的关联关系,从数据服务器120的缓存中提取与订阅号相应的订阅数据。数据服务器120的缓存中存储着与订阅号对应的订阅数据。订阅数据是指根据查找条件在数据库中查找到的或者存储在缓存中的业务数据。
步骤208,将获取的订阅数据返回给客户端。
在一个实施例中,数据服务器120从缓存中提取到与订阅号相应的订阅数据,并将订阅数据通过互联网或者企业内部网络发送给业务终端131。
在另一个实施例中,步骤208可以在步骤210之后执行。
步骤210,将第一查询请求所携带的客户端标识存储到订阅号关联的客户端标识列表中。
在一个实施例中,数据服务器120通过对业务终端131发送的第一查询请求解析提取到其中的客户端标识,并将客户端标识存储到与订阅号关联的客户端标识列表中,以建立订阅号与客户端标识的对应关系。客户端标识是业务终端131的唯一标识,比如业务终端131的客户端标识可以将业务终端131与业务终端132或133区别开来。客户端标识可以是客户端的IP地址、客户端所在业务终端的MAC地址和用户账号中的至少一种。与订阅号关联的客户端标识列表可以表示订阅号与客户端标识的对应关系,一个订阅号可以对应多个客户端标识。
步骤212,当缓存中与所述订阅号相对应的订阅数据更新时,根据与订阅号关联的客户端标识列表推送缓存中更新的订阅数据。
在一个实施例中,数据服务器120根据业务服务器110的更新数据对缓存中的订阅数据进行更新时,数据服务器120获取订阅此订阅数据的客户端列表,且客户端列表中订阅此数据的客户端有业务终端131和业务终端132,将更新后的订阅数据发送给业务终端131和业务终端132。
在另一个实施例中,数据服务器120根据业务服务器110的数据库中的更新数据来更新缓存中的订阅数据,根据订阅数据获取对应的订阅号,在根据订阅号提取与订阅号对应的客户端列表,客户端列表中包括业务终端131和业务终端132的客户端标识,数据服务器120将更新后的订阅数据推送到客户端列表中客户端标识对应的业务终端131和业务终端132,业务终端131和业务终端132根据订阅数据来刷新界面。
本实施例中,通过客户端发送的查询请求中的查询条件来查找订阅号,根据订阅号从缓存中获取的订阅数据返回给客户端,并将客户端标识存储到订阅号的关联的客户端列表中。当与订阅号对应的订阅数据有更新时,不需要通过广播推送的形式将更新数据推送到所有的客户端,而是根据与订阅号关联的客户端标识列表来推送更新数据,以将更新后的订阅数据定向推送给已经通过查询请求订阅了订阅数据的客户端。这样通过查询请求来订阅推送的方式可以将订阅数据准确推送到已经订阅客户端,减少了由于广播推送产生的大量数据,避免了由于大量广播推送数据占用传输通道而导致网络拥堵,降低了更新数据的传输速度,从而使更新效率降低的情形。
如图3所示,在一个实施例中,该更新数据的推送方法还包括更新缓存中数据的步骤,具体包括以下步骤:
步骤302,接收业务服务器将更新数据放入消息队列后发送的更新通知。
具体地,在业务服务器110的数据库有更新时,业务服务器110在更新完数据库之后,提取更新后的数据并放在消息队列中。业务服务器110将更新数据放在消息队列之后,向数据服务器120发送一个更新通知。数据服务器120接收业务服务器110发送的更新通知。
消息队列是按照顺序保存消息的数据容器,消息队列的主要目的是提供路由并保证消息的传递。如果发送消息时接收方处于不能接收消息的状态,消息队列会保留消息,直到消息被成功地传递给接收方。对消息队列有写权限的进程可以向消息队列中按照一定的规则添加新消息;对消息队列有读权限的进程则可以从消息队列中读取消息。业务服务器110可以按照更新数据的时间顺序或者优先级将更新数据放入消息队列中,数据服务器120按照更新数据放入消息队列的时间顺序或者优先级来读取消息。
步骤304,根据更新通知获取消息队列中的更新数据。
在一个实施例中,数据服务器120接收到更新通知之后,数据服务器120利用消息接收程序从消息队列中获取更新数据。
在另一个实施例中,数据服务器120在接收得到更新通知之后通过发送获取请求到业务服务器110,业务服务器110根据请求提取消息队列中的更新数据并发送给数据服务器120。
步骤306,根据更新数据更新缓存中的订阅数据。
在一个实施例中,数据服务器120在获取到更新数据之后,根据更新数据的内容更新缓存中内容相对应的订阅数据。
在另一个实施例中,数据服务器120在获取到更新数据之后,提取更新数据中的更新对象或更新业务,并根据更新对象或更新业务在缓存中查找内容相符的订阅数据并更新。
本实施例中,在业务服务器对数据进行更新的时候,向数据服务器发出更新通知,数据服务器根据更新通知获取更新数据,并利用更新数据更新缓存中的订阅数据。这样,数据库服务器缓存中的订阅数据与业务服务器的数据库中的数据保持一致,以为客户端提供准确的订阅数据,方便客户端了解实时准确的数据。
在一个实施例中,步骤302具体还包括以下步骤:在业务服务器根据客户端的业务调用更新数据库并提取更新数据后,接收业务服务器将提取的更新数据放入消息队列后发送的更新通知。
具体地,业务终端131由于业务需要向业务服务器110发送一个业务调用请求,业务服务器110根据业务终端131的业务调用请求来更新数据库中的数据。在数据库的数据更新之后,业务服务器110提取数据库中的更新数据并放入消息队列中,或者业务服务器110通过消息队列管理程序将更新数据放入到消息队列中。在业务服务器110将更新数据放入消息队列之后,向数据服务器120发送更新通知,以便数据服务器120更新缓存中的订阅数据。
本实施例中,在客户端进行业务调用的时候,业务服务器对数据进行更新,保证数据库中的数据与实际业务调用过程中的数据同步,并通过发送更新通知以更新缓存中的数据,以便客户端可以准确了解当前准确数据并制定相应的方案。
如图4所示,在一个实施例中,一种更新数据的推送方法,具体还包括如下步骤:
步骤402,接收客户端发送的第一查询请求。
步骤404,根据第一查询请求所携带的查询条件查找相关联的订阅号。若查找到,则执行步骤406;若未查找到,则执行步骤410。
在一个实施例中,通过根据第一查询请求所携带的查询条件查找相关联的订阅号用以判断是否存在相同订阅。判断相同订阅是指之前已经有业务终端131通过查询请求订阅了订阅数据并创建了订阅号,当业务终端132再一次通过查找请求查找订阅数据时,根据业务终端132的查找请求中的查找条件查找订阅号,如果查找到订阅号则存在相同订阅内容,若未查找到订阅号,则不存在相同订阅内容。
步骤406,根据查找到的订阅号从缓存中获取相应的订阅数据。
步骤408,将获取的订阅数据返回给客户端。
步骤410,创建与查询条件对应的订阅号。
具体地,在数据服务器120根据业务终端131的第一查询请求的查询条件没有查找到与查询条件对应的订阅号时,则根据查询条件创建订阅号,所创建的订阅号与查询条件有对应关系。
在一个实施例中,在创建订阅号之后,数据服务器120在订阅号与查询条件之间建立映射关系,并将映射关系存储在映射关系表中。
步骤412,根据查询条件从数据库中提取订阅数据。
在一个实施例中,数据服务器120根据查询条件向业务服务器110发送查询请求。业务服务器110接收到查询请求之后,根据查询请求中的查询条件在数据库中查找与查询条件匹配的订阅数据,业务服务器110将查找到的订阅数据发送给数据服务器120。
在另一个实施例中,业务服务器110接收到数据服务器120发送的查询请求之后,通过解析查询请求提取查询请求中业务条件或业务对象,根据业务条件或业务对象在数据库中查找相应的订阅数据。数据服务器120通过企业内部网或者互联网接收查找到的订阅数据。
步骤414,将从数据库中提取的订阅数据存储在缓存中并与订阅号关联。
在一个实施例中,数据服务器120将通过业务服务器110从数据库中提取的订阅存储在数据服务器120的缓存中,且将订阅数据与订阅号建立映射关系,使订阅数据与订阅号相关联。
在另一个实施例中,数据服务器120将订阅数据存储在缓存中,并提取订阅数据中的字符或者业务条件作为关键字,通过将关键字与订阅号建立对应关系,使得订阅号和订阅数据相关联。
步骤416,将从数据库中提取的订阅数据返回给客户端。
在一个实施例中,数据服务器120通过解析提取第一查询请求中的客户端标识,将通过业务服务器110从数据库中提取的订阅数据通过企业内部网或互联网发送给客户端标识对应的业务终端131。
步骤418,将第一查询请求所携带的客户端标识存储到订阅号关联的客户端标识列表中。
在一个实施例中,数据服务器120通过解析提取第一查询请求中所携带的客户端标识,并将客户端标识加入到与订阅号关联的客户端标识列表中,以便数据服务器120通过订阅号与客户端标识的关联来推送订阅数据。
步骤420,当缓存中与订阅号相应的订阅数据更新时,根据与订阅号关联的客户端标识列表推送缓存中更新的订阅数据。
本实施例中,如果没有查找到与第一查询请求相关联的订阅号时,则重新创建一个与查询条件相关联的订阅号,根据查询条件从数据库中提取订阅数据,将订阅数据存储在数据服务器的缓存中并与订阅号进行关联,将订阅数据返回给客户端。这样通过建立订阅号,并使订阅数据和订阅号关联,可以保证以后客户端与数据服务器以后通过订阅号查询订阅数据,将订阅数据存储在缓存中避免客户端下次查询时需要重新从数据库中再获取订阅数据,提高了数据查询效率。
如图5所示,在一个实施例中,该更新数据的推送方法还包括查询数据的步骤,具体包括以下步骤:
步骤502,将订阅号返回给第一查询请求中所携带的客户端标识对应的客户端。
具体地,数据服务器120通过解析提取第一查询请求中的查询条件和客户端标识,将根据查询条件查找到的订阅号或者创建的订阅号发送与客户端标识对应的业务终端131。
步骤504,接收客户端发送的携带有订阅号的第二查询请求。
在一个实施例中,业务终端131接收到数据服务器120根据第一查询请求中的查询条件查找到的订阅号或者创建的订阅号,业务终端131将订阅号封装在第二查询请求中发送给数据服务器120。数据服务器120接收业务终端131发送的携带有订阅号的第二查询请求。
步骤506,根据第二查询请求所携带的订阅号获取缓存中相应的订阅数据。
在一个实施例中,数据服务器120接收业务终端131发送的第二查询请求,通过解析提取第二查询请求中的订阅号,数据服务器120根据订阅号与订阅数据的关联或者根据订阅号与订阅数据中关键字的对应关系获取缓存中与订阅号相应的订阅数据。
步骤508,将根据第二查询请求所携带的订阅号获取的订阅数据返回给客户端。
在一个实施例中,数据服务器120通过解析获取第二查询请求中的客户端标识,根据订阅号与订阅数据关联或者订阅数据中关键字的对应关系获取的订阅数据通过企业内部网络或者互联网发送给与客户端标识对应的业务终端131。
本实施例中,客户端通过发送携带订阅号的查询请求,数据服务器直接提取订阅号并根据订阅号与订阅数据的关联或者对应关系直接从缓存中获取订阅数据,并将订阅数据发送给客户端。这样在客户端每次查找订阅数据的时候,避免了数据服务器都需要访问数据库的情况,提高了查询效率。
参照图6,在一个实施例中,一种更新数据的推送方法具体包括如下步骤:业务终端131向数据服务器120发送查询请求。数据服务器120接收查询请求之后,通过解析获取查询条件,并根据查询条件来查找对应的订阅号,如果查找到对应的订阅号,则根据订阅号获取订阅缓存中相应的订阅数据,并将订阅数据返回给客户端;如果没有查找到相应的订阅号,则创建与查找条件对应的订阅号,并根据查询条件调用中间层查询接口从业务服务器中查询符合查询条件的业务数据,缓存查找到的业务数据并与订阅号关联形成订阅数据。
数据服务器120通过解析获取查询请求中的客户端标识,并将客户端标识存储到与订阅号关联的客户端标识列表中。数据服务器120将订阅号和订阅数据发送给业务终端131。
基于客户端的业务调用,业务服务器110更新数据库中的业务数据,并且将更新后的数据放在消息队列中,并给数据服务器发送更新通知。数据服务器120根据更新通知,通过消息接收程序获取消息队列中的更新数据,使用更新数据更新缓存中的订阅数据,在更新缓存中的订阅数据之后,根据更新后的订阅数据查找订阅号,按照与订阅号关联的客户端标识列表将订阅数据发送给客户端标识对应的客户端。
如图7所示,在一个实施例中,提供一种更新数据的推送装置700,包括:查询请求接收模块702、查找模块704、订阅数据获取模块706、订阅数据返回模块708、客户端标识存储模块710和推送模块712。
查询请求接收模块702,用于接收客户端发送的第一查询请求;
查找模块704,用于根据第一查询请求所携带的查询条件查找相关联的订阅号。
订阅数据获取模块706,用于根据查找到的订阅号从缓存中获取相应的订阅数据。
订阅数据返回模块708,用于将订阅数据返回给客户端。
客户端标识存储模块710,用于将第一查询请求所携带的客户端标识存储到订阅号关联的客户端标识列表中。
推送模块712,用于当缓存中与订阅号相应的订阅数据更新时,根据与订阅号关联的客户端标识列表推送缓存中更新的订阅数据。
本实施例中,查找模块通过客户端发送的查询请求中的查询条件来查找订阅号,订阅数据返回模块将根据订阅号从缓存中获取的订阅数据返回给客户端,客户端标识存储模块将客户端标识存储到订阅号的关联的客户端列表中。当与订阅号对应的订阅数据有更新时,推送模块不需要通过广播推送的形式将更新数据推送到所有的客户端,而是根据与订阅号关联的客户端标识列表来推送更新数据,以将更新后的订阅数据定向推送给已经通过查询请求订阅了订阅数据的客户端。这样通过查询请求来订阅推送的方式可以将订阅数据准确推送到已经订阅客户端,减少了由于广播推送产生的大量数据,避免了由于大量广播推送数据占用传输通道而导致网络拥堵,降低了更新数据的传输速度,从而使更新效率降低的情形。
如图8所示,在一个实施例中,更新数据的推送装置700还包括:通知接收模块714、更新数据获取模块716和更新模块718。
通知接收模块714,用于接收业务服务器将更新数据放入消息队列后发送的更新通知。
更新数据获取模块716,用于根据更新通知获取消息队列中的更新数据。
更新模块718,用于根据更新数据更新缓存中的订阅数据。
本实施例中,在业务服务器对数据进行更新的时候,向数据服务器发出更新通知,更新数据获取模块根据更新通知获取更新数据,更新模块利用更新数据更新缓存中的订阅数据。这样,数据服务器缓存中的订阅数据与业务服务器的数据库中的数据保持一致,以为客户端提供准确的订阅数据,方便客户端了解实时准确的数据。
在一个实施例中,通知接收模块714还用于在业务服务器根据客户端的业务调用更新数据库并提取更新数据后,接收业务服务器将提取的更新数据放入消息队列后发送的更新通知。
本实施例中,在客户端进行业务调用的时候,业务服务器对数据进行更新,保证数据库中的数据与实际业务调用过程中的数据同步,并通过发送更新通知以更新缓存中的数据,以便客户端可以准确了解当前准确数据并制定相应的方案。
如图9所示,在一个实施例中,更新数据的推送装置700还包括:订阅号创建模块720和存储关联模块722。
订阅号创建模块720,用于若未查找到订阅号,则创建与查询条件相关联的订阅号。
订阅数据提取模块722,用于根据查询条件从数据库中提取订阅数据。
存储关联模块724,用于将从数据库中提取的订阅数据存储在缓存中并与订阅号关联。
订阅数据返回模块708还用于将从数据库中提取的订阅数据返回给客户端。
本实施例中,若没有查找到与第一查询请求中查询条件相关联的订阅号时,订阅号创建模块重新创建与查询条件相关联的订阅号,订阅数据获取模块根据查询条件从数据库中提取订阅数据,存储关联模块将订阅数据存储在数据服务器的缓存中并与订阅号进行关联,订阅数据返回模块将订阅数据返回给客户端。这样通过建立订阅号,并使订阅数据和订阅号关联,可以保证以后客户端与数据服务器以后通过订阅号查询订阅数据,将订阅数据存储在缓存中避免客户端下次查询时需要重新从数据库中再获取订阅数据,提高了数据查询效率。
如图10所示,在一个实施例中,更新数据的推送装置700还包括:订阅号返回模块726。
订阅号返回模块726,用于将订阅号返回给第一查询请求中所携带的客户端标识对应的客户端。
查询请求接收模块702还用于接收客户端发送的携带有订阅号的第二查询请求。
订阅数据获取模块706还用于根据第二查询请求所携带的订阅号获取缓存中相应的订阅数据。
订阅数据返回模块708还用于将根据第二查询请求所携带的订阅号获取的订阅数据返回给所述客户端。
本实施例中,客户端通过发送携带订阅号的查询请求,订阅数据获取模块直接提取订阅号并根据订阅号与订阅数据的关联或者对应关系直接从缓存中获取订阅数据,通过订阅数据返回模块将订阅数据发送给客户端。这样在客户端每次查找订阅数据的时候,避免了数据服务器都需要访问数据库的情况,提高了查询效率。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种更新数据的推送方法,所述方法包括:
接收客户端发送的第一查询请求;
根据所述第一查询请求所携带的查询条件查找相关联的订阅号;
根据查找到的订阅号从缓存中获取相应的订阅数据;所述缓存用于存储与订阅号对应的订阅数据,所述订阅数据为基于业务服务器进行各种业务操作产生的业务数据;
将获取的订阅数据返回给所述客户端;
将所述第一查询请求所携带的客户端标识存储到所述订阅号关联的客户端标识列表中;
根据业务服务器的更新通知和更新数据对缓存中的订阅数据进行更新;
当缓存中与所述订阅号相应的订阅数据更新时,根据与所述订阅号关联的所述客户端标识列表推送缓存中更新的订阅数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收业务服务器将更新数据放入消息队列后发送的更新通知;
根据所述更新通知获取所述消息队列中的所述更新数据;
根据所述更新数据更新缓存中的订阅数据。
3.根据权利要求2所述的方法,其特征在于,所述接收业务服务器将更新数据放入消息队列后发送的更新通知,包括:
在业务服务器根据客户端的业务调用更新数据库并提取更新数据后,接收所述业务服务器将提取的所述更新数据放入消息队列后发送的更新通知。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一查询请求所携带的查询条件查找相关联的订阅号之后,还包括:
若未查找到所述订阅号,则创建与所述查询条件相关联的订阅号;
根据所述查询条件从数据库中提取订阅数据;
将从数据库中提取的订阅数据存储在缓存中并与所述订阅号关联;
将从数据库中提取的订阅数据返回给所述客户端;
执行所述将所述第一查询请求所携带的客户端标识存储到所述订阅号关联的客户端标识列表中的步骤。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将订阅号返回给所述第一查询请求中所携带的客户端标识对应的客户端;
接收所述客户端发送的携带有所述订阅号的第二查询请求;
根据所述第二查询请求所携带的所述订阅号获取缓存中相应的订阅数据;
将根据所述第二查询请求所携带的所述订阅号获取的所述订阅数据返回给所述客户端。
6.一种更新数据的推送装置,其特征在于,所述装置包括:
查询请求接收模块,用于接收客户端发送的第一查询请求;
查找模块,用于根据所述第一查询请求所携带的查询条件查找相关联的订阅号;
订阅数据获取模块,用于根据查找到的订阅号从缓存中获取相应的订阅数据;所述缓存用于存储与订阅号对应的订阅数据,所述订阅数据为基于业务服务器进行各种业务操作产生的业务数据;
订阅数据返回模块,用于将所述订阅数据返回给所述客户端;
客户端标识存储模块,用于将所述第一查询请求所携带的客户端标识存储到所述订阅号关联的客户端标识列表中;
更新模块,用于根据业务服务器的更新通知和更新数据对缓存中的订阅数据进行更新;
推送模块,用于当缓存中与所述订阅号相应的订阅数据更新时,根据与所述订阅号关联的所述客户端标识列表推送缓存中更新的订阅数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
通知接收模块,用于接收业务服务器将更新数据放入消息队列后发送的更新通知;
更新数据获取模块,用于根据所述更新通知获取所述消息队列中的所述更新数据;
更新模块,用于根据所述更新数据更新缓存中的订阅数据。
8.根据权利要求7所述的装置,其特征在于,所述通知接收模块还用于在业务服务器根据客户端的业务调用更新数据库并提取更新数据后,接收所述业务服务器将提取的所述更新数据放入消息队列后发送的更新通知。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
订阅号创建模块,用于若未查找到所述订阅号,则创建与所述查询条件相关联的订阅号;
订阅数据提取模块,用于根据所述查询条件从数据库中提取订阅数据;
存储关联模块,用于将从数据库中提取的订阅数据存储在缓存中并与所述订阅号关联;
所述订阅数据返回模块还用于将从数据库中提取的订阅数据返回给所述客户端。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
订阅号返回模块,用于将订阅号返回给所述第一查询请求中所携带的客户端标识对应的客户端;
所述查询请求接收模块还用于接收所述客户端发送的携带有所述订阅号的第二查询请求;
所述订阅数据获取模块还用于根据所述第二查询请求所携带的所述订阅号获取缓存中相应的订阅数据;
所述订阅数据返回模块还用于将根据所述第二查询请求所携带的所述订阅号获取的所述订阅数据返回给所述客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510691324.9A CN106612301B (zh) | 2015-10-22 | 2015-10-22 | 更新数据的推送方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510691324.9A CN106612301B (zh) | 2015-10-22 | 2015-10-22 | 更新数据的推送方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106612301A CN106612301A (zh) | 2017-05-03 |
CN106612301B true CN106612301B (zh) | 2019-11-15 |
Family
ID=58611876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510691324.9A Active CN106612301B (zh) | 2015-10-22 | 2015-10-22 | 更新数据的推送方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106612301B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109766347B (zh) * | 2017-07-21 | 2023-03-28 | 腾讯科技(深圳)有限公司 | 一种数据更新方法、装置、系统、计算机设备及存储介质 |
CN109560951B (zh) * | 2017-09-27 | 2023-04-07 | 亿阳信通股份有限公司 | 一种配置方法、告警实时统计方法、服务器及系统 |
CN107742208A (zh) * | 2017-11-23 | 2018-02-27 | 中国平安财产保险股份有限公司 | 车辆出险流程的查询方法、装置、设备和计算机介质 |
CN108259594B (zh) * | 2018-01-11 | 2020-02-18 | 杭州秘猿科技有限公司 | 一种基于区块链的数据交互系统以及中继服务器 |
CN108282534A (zh) * | 2018-01-29 | 2018-07-13 | 出门问问信息科技有限公司 | 信息推送方法、装置、电子设备以及计算机存储介质 |
CN109040300B (zh) * | 2018-09-04 | 2021-05-14 | 航天信息股份有限公司 | 推送消息的方法、装置和存储介质 |
CN110427551B (zh) * | 2019-07-01 | 2022-11-11 | 五八有限公司 | 信息推送方法、装置、电子设备和计算机可读介质 |
CN110460958A (zh) * | 2019-07-29 | 2019-11-15 | 深圳思凯微电子有限公司 | 物联网广播方法、装置、广播站及存储介质 |
CN110795596B (zh) * | 2019-11-07 | 2023-05-09 | 北京首钢自动化信息技术有限公司 | 一种客户端的信息反馈方法及装置 |
CN111193789B (zh) * | 2019-12-25 | 2023-07-11 | 微民保险代理有限公司 | 订阅信息推送方法、装置、计算机设备和可读存储介质 |
CN111163159B (zh) * | 2019-12-27 | 2023-07-14 | 中国平安人寿保险股份有限公司 | 消息订阅方法、装置、服务器及计算机可读存储介质 |
US11093236B1 (en) * | 2020-03-26 | 2021-08-17 | Atlassian Pty Ltd. | Systems and methods for delivering updates to client devices |
CN112187896A (zh) * | 2020-09-18 | 2021-01-05 | 成都精灵云科技有限公司 | 支持改动实时通知和数据实时同步的缓存系统及方法 |
CN114520832B (zh) * | 2020-11-19 | 2023-08-25 | 腾讯科技(深圳)有限公司 | 一种数据流处理方法、装置、设备及计算机存储介质 |
CN112468566B (zh) * | 2020-11-20 | 2023-11-24 | 银盛支付服务股份有限公司 | 一种基于Message Queue消息广播模式的缓存更新方法及系统 |
CN112541101B (zh) * | 2020-12-11 | 2023-04-21 | 武汉旷视金智科技有限公司 | 订阅数据的推送方法、装置、电子设备及计算机存储介质 |
CN115967754A (zh) * | 2022-12-26 | 2023-04-14 | 杭州和利时自动化有限公司 | 一种工业数据获取方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100527678C (zh) * | 2006-09-08 | 2009-08-12 | 中国科学院计算技术研究所 | 发布和获取关系型呈现信息的方法 |
US8868499B2 (en) * | 2007-08-15 | 2014-10-21 | Salesforce.Com, Inc. | Method and system for pushing data to subscribers in an on-demand service |
CN103220260B (zh) * | 2012-01-20 | 2016-04-27 | 腾讯科技(深圳)有限公司 | 更新数据的方法、服务器、客户端及系统 |
CN102902733B (zh) * | 2012-09-11 | 2016-12-21 | 北京奇艺世纪科技有限公司 | 一种基于内容订阅的信息推送方法、装置及系统 |
CN103593419B (zh) * | 2013-10-30 | 2018-03-09 | 华为技术有限公司 | 数据查询方法、装置、服务器及系统 |
CN103986787B (zh) * | 2014-06-05 | 2016-03-30 | 合一网络技术(北京)有限公司 | 自动获取视频更新的方法和系统 |
-
2015
- 2015-10-22 CN CN201510691324.9A patent/CN106612301B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN106612301A (zh) | 2017-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106612301B (zh) | 更新数据的推送方法和装置 | |
KR101773730B1 (ko) | 컴퓨팅 디바이스에 의해 제공되는 위치 데이터 포인트를 사용한 위치 정보 결정 | |
JP5745169B2 (ja) | コンテンツ処理方法、コンテンツ処理デバイス、およびコンテンツ処理システム | |
JP6222680B2 (ja) | 位置情報サービスを実施するための方法、装置、およびシステム | |
US20110113062A1 (en) | System and method for searching disparate datastores via a remote device | |
KR20160076445A (ko) | 정보 중심 네트워크들에서 링크 상태 정보를 사용한 효율적인 이름 기반 콘텐츠 라우팅을 위한 시스템 및 방법 | |
Scherb et al. | Resolution strategies for networking the IoT at the edge via named functions | |
CN101771723A (zh) | 数据同步方法 | |
CA2546542A1 (en) | Distributing relevant routing information base updates to subscribing clients in a device | |
CN110413845B (zh) | 基于物联网操作系统的资源存储方法及装置 | |
US20210112004A1 (en) | Apparatus and method for forwarding a packet in content centric network | |
CN100414869C (zh) | 一种互联网上实现资讯订阅的方法及系统 | |
US7275081B1 (en) | Managing state information in a computing environment | |
WO2023221452A1 (zh) | 报文处理系统、方法、设备和存储介质 | |
WO2020024445A1 (zh) | 数据存储方法、装置、计算机设备及计算机存储介质 | |
CN113347275A (zh) | 一种基于用户终端地理坐标的边缘节点调度方法和系统 | |
KR101798402B1 (ko) | 계층적 이름 구조에 기반한 네트워크에서 컨텐츠 요청자 및 컨텐츠 응답자의 통신 방법 및 장치 | |
CN101778131A (zh) | 数据同步系统 | |
CN111147534B (zh) | 一种微服务架构下的通信方法及系统 | |
US20120303601A1 (en) | Mobile search method and system thereof | |
US10025859B2 (en) | Method and system for second-degree friend query | |
US11606415B2 (en) | Method, apparatus and system for processing an access request in a content delivery system | |
CN104737505A (zh) | 基于缓存的路由方法及路由节点 | |
CN111913817A (zh) | 一种数据传输方法、系统和设备以及计算机可读存储介质 | |
CN105025042B (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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 518067 Room 401, building a, phase II, science and technology building, 1057 Nanhai Avenue, Nanshan District, Shenzhen City, Guangdong Province Patentee after: China Merchants International Technology Co.,Ltd. Address before: 518067 Room 401, building a, phase II, science and technology building, 1057 Nanhai Avenue, Nanshan District, Shenzhen City, Guangdong Province Patentee before: CHINA MERCHANTS HOLDINGS (INTERNATIONAL) INFORMATION TECHNOLOGY Co.,Ltd. |