一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种分发数据的方法和系统与流程

2022-03-04 22:09:01 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,特别涉及一种分发数据的方法和系统。


背景技术:

2.随着计算机技术的发展,分发数据在各个领域都得到了应用。例如,将新版本的服务端应用分发到各个终端,将新装备试用服务分发到各个终端,将国际支付全域的配置变更分发到各个终端。随着信息技术发展,对分发数据的要求也越来越高。在服务端对多个客户端分发数据时,需要保证各个客户端分发数据的时效性。在面对多个客户端分发数据时,还要保证各个客户端都接收到分发数据,保证分发数据的可靠性。
3.因此,亟需一种分发数据的方法和系统。


技术实现要素:

4.本说明书一个方面提供一种分发数据的方法。所述方法包括:第一终端从外部缓存获取分发数据版本,并判断所述第一终端是否存在所述分发数据版本;若否,则所述第一终端从所述外部缓存获取所述分发数据版本对应的分发数据并保存,以及所述第一终端从所述外部缓存获取对应的数据生效版本;判断所述数据生效版本的指针是否为所述分发数据版本,若是,则所述第一终端的生效数据版本的指针改写为所述分发数据版本。
5.本说明书另一个方面提供一种分发数据的系统。所述系统包括第一终端,所述第一终端包括:数据获取模块:用于从外部缓存获取分发数据版本,并判断所述第一终端是否存在所述分发数据版本;若否,则从所述外部缓存获取所述分发数据版本对应的分发数据并保存,以及从所述外部缓存获取对应的数据生效版本;数据生效模块:用于判断所述数据生效版本的指针是否为所述分发数据版本,若是,则所述第一终端的生效数据版本的指针改写为所述分发数据版本。
6.本说明书另一个方面提供一种分发数据的装置,包括处理器,所述处理器用于执行分发数据的方法。
7.本说明书另一个方面提供计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行分发数据的方法。
附图说明
8.本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
9.图1是根据本说明书一些实施例所示的分发数据的系统的应用场景示意图;
10.图2是根据本说明书的一些实施例所示的示例性分发数据的系统的模块图;
11.图3是根据本说明书一些实施例所示的分发数据的方法的示例性流程图;
12.图4是根据本说明书一些实施例所示的另一种分发数据的方法的示例性流程图;
13.图5是根据本说明书一些实施例所示的一种验证分发数据的方法的示例性流程图;
14.图6是根据本说明书一些实施例所示的一种分发数据的方法的示例性数据变化图。
具体实施方式
15.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
16.应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
17.如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
18.本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
19.图1是根据本说明书的一些实施例所示的示例性分发数据的系统的应用场景示意图。
20.如图1所示,应用场景100可以包括第一终端110、第二终端120、存储设备130以及网络140。
21.应用场景100可以应用于多种数据分发的应用场景。例如,第二终端120可以将新版本的服务端应用分发到各个第一终端110、第二终端120可以分发新装备试用服务到各个第一终端110、第二终端120可以分发国际支付全域的配置变更到各个第一终端110。在直接由第二终端120向第一终端110分发数据的方法中,需要第二终端120一对一地将数据分发到各个第一终端110,但是由于待接收分发数据的第一终端110过多,分发数据的时效低,且需要连接多个第一终端110,第二终端120必须管理复杂关系,资源消耗过大。且由第二终端120一对一地将数据分发到各个第一终端110后,第一终端110是否接收到分发数据,分发数据是否生效无法得知,分发数据不可靠。为此,本发明提出通过第一终端110、第二终端120以及外部缓存来实现数据分发,第一终端110可以根据自身情况异步从缓存中获取数据,可以减低了第二终端120分发数据的资源消耗,大大提升了数据分发的效率。并可以通过外部缓存保存的数据版本来验证生效数据情况,令分发数据可靠。
22.在一个典型的应用场景中,用户可以访问第二终端120;第二终端120可以将用户制定的生效策略(即确定的各个第一终端110的数据生效版本)和分发数据发送给存储设备
130;第一终端110可以从存储设备130拉取分发数据,并按照生效策略即外部缓存中记录的各个终端对应的数据生效版本,更新或保持生效数据版本,并将生效数据版本上报给外部存储130;第二终端120和第一终端110可以从存储设备130获取第一终端110上报的生效数据版本,并与存储设备130中记录的数据生效版本比对,检查分发数据是否按需生效,确定分发数据的过程是否完成。
23.第一终端110和第二终端120可以是各类具有信息接收和/或发送功能的设备,如计算机、手机、文字扫描设备、显示设备、打印机等。第一终端110和第一终端120可以是用户使用的电子设备,可以包括各类移动设备、智能设备、可穿戴设备等,例如,手机、智能手镯、车载计算机等。在一些实施例中,第一终端110和第二终端120可以是相同类型的设备,也可以是不同类型的设备。
24.在一些实施例中,存储设备130可以用于存储数据和/或指令。存储设备130可以包括一个或多个存储组件,每个存储组件可以是一个独立的设备,也可以是其他设备的一部分。在一些实施例中,存储设备130可包括随机存取存储器(ram)、只读存储器(rom)、大容量存储器、可移动存储器、易失性读写存储器等或其任意组合。示例性的,大容量储存器可以包括磁盘、光盘、固态磁盘等。在一些实施例中,所述存储设备130可在云平台上实现。仅作为示例,所述云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。数据指对信息的数字化表示,可以包括各种类型,比如二进制数据、文本数据、图像数据、视频数据等。指令指可控制设备或器件执行特定功能的程序。
25.网络140连接系统的各组成部分,使得各部分之间可以进行通讯。在系统中各部分之间的网络可以包括有线网络和/或无线网络。例如,网络140可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(lan)、广域网络(wan)、无线局域网络(wlan)、城域网(man)、公共交换电话网络(pstn)、蓝牙网络、紫蜂网络(zigbee)、近场通信(nfc)、设备内总线、设备内线路、线缆连接等或其任意组合。每两个部分之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。
26.图2是根据本说明书的一些实施例所示的示例性分发数据的系统的模块图。
27.如图2所示,在一些实施例中,分发数据的系统200可以包括第一数据获取模块201、数据生效模块202、生效选择模块203、生效确定模块204、上报模块205、生效数据获取模块206、生效判断模块207、验证模块208、第二指针改写模块209、数据判断模块210、相关数据获取模块211。这些模块也可以作为应用程序或一组由处理引擎读取和执行的指令实现。此外,模块可以是硬件电路和应用/指令的任何组合。例如,当处理引擎或处理器执行应用程序/一组指令时,模块可以是处理器的一部分。
28.第一数据获取模块201可以用于从外部缓存获取分发数据版本,并判断所述第一终端是否存在所述分发数据版本;若否,则从所述外部缓存获取所述分发数据版本对应的分发数据并保存,以及从所述外部缓存获取对应的数据生效版本;在一些实施例中,第一数据获取模块201还包括第一指针改写模块2011,用于所述第一终端从所述外部缓存获取所述分发数据后,将所述当前本地数据版本的指针改写为所述分发数据版本。在一些实施例中,所述外部缓存可以采用分布式缓存。
29.数据生效模块202可以用于判断所述数据生效版本的指针是否为所述分发数据版本,若是,则所述第一终端的生效数据版本的指针改写为所述分发数据版本。
30.生效选择模块203可以用于选择生效终端,所述生效终端为所述第一终端中本次分发数据生效的所述第一终端。
31.生效确定模块204可以用于令所述生效终端的所述数据生效版本的指针为所述分发数据版本,令除所述生效终端外的其它所述第一终端的所述数据生效版本的指针为对应的所述第一终端的所述生效数据版本。
32.上报模块205可以用于将所述生效数据版本发送至所述外部缓存保存。
33.生效数据获取模块206可以用于获取所述外部缓存中所述第一终端发送的所述生效数据版本和对应的所述第一终端的所述数据生效版本。在一些实施例中,所述第一终端从所述外部缓存获取所述分发数据版本,以及所述第一终端从所述外部缓存获取对应的所述第一终端的数据生效版本都为定时获取。
34.生效判断模块207可以用于判断所述第一终端发送的所述生效数据版本和对应的所述第一终端的所述数据生效版本是否一致,若否,则所述第一终端重新执行所述分发数据的方法。
35.验证模块208可以用于验证分发数据。
36.第二指针改写模块209可以用于若验证未通过,则将完成分发数据后的所述第一终端的所述生效数据版本的指针改写为第一指针,所述第一指针为前一次分发数据完成后对应的所述第一终端的所述生效数据版本。
37.数据判断模块210可以用于判断所述外部缓存中是否存在所述第一终端对应的相关数据;所述第一终端对应的相关数据至少包括所述分发数据版本、所述分发数据和所述第一终端的所述数据生效版本。
38.相关数据获取模块211可以用于若所述数据判断模块210的判断结果为否,则获取对应的所述第一终端对应的相关数据,并保存至所述外部缓存。
39.应当理解,所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本技术的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
40.需要注意的是,以上对于分发数据的系统200及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,第一数据获取模块201、数据生效模块202、生效选择模块203、生效确定模块204、上报模块205、生效数据获取模块206、生效判断模块207、验证模块208、第二指针改写模块209、数据判断模块210、相关数据获取模块211可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本技术的保护范围之
内。
41.图3是根据本说明书的一些实施例所示的分发数据的方法的示例性流程图。在一些实施例中,该分发数据的方法300可以由第一终端执行。
42.如图3所示,该分发数据的方法300可以包括:
43.步骤310,第一终端从外部缓存获取分发数据版本,并判断所述第一终端是否存在所述分发数据版本,若否,则所述第一终端从所述外部缓存获取所述分发数据版本对应的分发数据并保存,以及所述第一终端从所述外部缓存获取对应的数据生效版本。
44.具体的,该步骤310可以由第一数据获取模块201执行。
45.终端是指各类具有信息接收和/或发送功能的设备,如计算机、手机、文字扫描设备、显示设备、打印机等。终端可以用来进行推送分发数据或接收分发数据。
46.分发数据是指被分发的各种数据,可以包括消息数据、配置数据、指令数据等等。
47.在一些实施例中,用于接收分发数据的终端可以称为第一终端,也可以称为客户端,用于推送分发数据的终端可以称为第二终端,也可以称为服务端。
48.外部缓存是指单独的外部缓存空间,例如外部的数据库缓存、外部的服务器缓存、分布式缓存等等。外部缓存可以搭载在外部存储介质上,例如外部的服务器、外部的存储器等。
49.在一些实施例中,外部缓存可以采用分布式缓存,例如,redis、memcache、ssdb等。分布式缓存、第一终端和第二终端可以部署在同一物理机房内,例如分布式缓存、第一终端、第二终端都部署在同一城市,或者都部署在同一国家。
50.分发数据版本是指分发数据的数据版本,例如分发数据为y,其对应的分发数据版本为m。
51.在一些实施例中,分发数据可以是用户通过第二终端进行数据选择确定的,也可以是第二终端按照预先设置自动确定的。
52.在一些实施例中,外部缓存的分发数据版本及对应的分发数据来自第二终端。即用于推送分发数据的第二终端可以将分发数据以及对应的分发数据版本写入外部缓存。例如,参见图6,在示例性数据变化600中,用户或者按照预先设置通过第一终端选择确定了分发数据为y,分发数据版本为m,写入外部缓存中,外部缓存中记录有(分发数据版本:m,数据:y)。
53.在一些实施例中,可以有多个第二终端将至少一个分发数据以及对应的分发数据版本写入外部缓存。例如,有两个第二终端a和b,第二终端a可以将分发数据z,对应的分发数据版本o写入外部缓存,第二终端b可以将分发数据y,对应的分发数据版本m写入外部缓存。又例如,第二终端b可以将分发数据y,对应的分发数据版本m,和分发数据z,对应的分发数据版本o都写入外部缓存。可以理解,外部缓存中可以记录有多个不同的分发数据,及对应的分发数据版本,该多个不同的分发数据可以来自多个第二终端。
54.在一些实施例中,第一终端从外部缓存获取分发数据版本可以为定时获取。例如,第一终端可以每隔5s从外部缓存获取一次分发数据版本。第一终端可以通过扫描外部缓存的方式来获取分发数据版本,扫描可以为定时扫描。
55.第一终端本地存储中记录有第一终端已经接收或者已经获取到的分发数据的版本,可以用当前本地数据版本表示。第一终端本地存储的已经接收或者已经获取到的分发
数据的版本可以包括一个或多个数据版本。例如,在本次数据分发前,第一终端已经接收了分发数据x,对应分发数据版本为n,则第一终端已经存储有当前本地数据x,对应的当前本地数据版本为n。又例如,在本次数据分发前,第一终端已经接收了分发数据x和y,对应分发数据版本为n和m,则第一终端已经存储有当前本地数据x,y,对应的当前本地数据版本包括n,m。
56.第一终端从外部缓存获取分发数据版本后,可以通过与当前本地数据版本进行比对来判断第一终端是否存在分发数据版本。如果比对到有当前本地数据版本与分发数据版本一致,则第一终端本地储存中存在该数据分发版本,即也保存有对应的分发数据,若比对到当前数据版本与分发数据版本不一致,则第一终端本地存储中不存在该数据分发版本,即也未保存有对应的分发数据。
57.当第一终端本地存储中不存在数据分发版本,即也未保存有对应的分发数据时,则在本次数据分发中,第一终端需要从外部缓存中去获取对应的分发数据并保存。通过该实施例,可以通过比对第一终端本地存储的已有数据版本中是否存在分发数据版本,就能准确判断该第一终端本地是否保存有本次的分发数据,若有则不需再重新获取分发数据,若无则需要获取本次的分发数据。提高了数据分发的效率,避免分发数据的重复获取。
58.在一些实施例中,第一终端从外部缓存获取分发数据后,可以将当前本地数据版本的指针改写为所述分发数据版本,该步骤可以由第一指针改写模块2011执行。例如,参见图6,在示例性数据变化600中,当前第一终端存储的当前本地数据为x,对应的当前本地数据版本为n,本次分发数据为y,对应的数据分发版本为m,比对到当前数据版本n与分发数据版本m不一致,第一终端从外部缓存中获取分发数据y,并可以将当前本地数据版本的指针n改为m。通过本实施例,可以令第一终端记录的当前本地数据版本根据是否获取到分发数据而更新,当前本地数据版本始终与第一终端当前获取到的分发数据的数据版本保持一致。
59.数据生效版本是指第一终端对应的需要生效的数据版本,外部缓存中保存有至少一个第一终端的数据生效版本。例如,外部缓存中保存有(第一终端127.0.0.1,数据生效版本m)、(第一终端127.0.0.2,数据生效版本n)。
60.生效数据版本是指第一终端本地存储的当前正在生效的数据版本,例如,第一终端本地存储的当前正在生效的数据为x,对应的数据版本为n,则该第一终端的生效数据版本为n。
61.第一终端的数据生效版本为分发数据版本或第一终端的生效数据版本。当第一终端的数据生效版本为分发数据版本时,即表示在该次分发数据中,该第一终端的分发数据需要生效,当第一终端的数据生效版本为生效数据版本时,即表示在该次分发数据中,该第一终端的分发数据不需生效,该第一终端的生效数据为生效数据版本对应的数据。第一终端对应的数据生效版本可以由用户选择确定,也可以按照预先设置自动确定。
62.在一些实施例中,第一终端对应的数据生效版本可以通过以下方法确定:选择生效终端,该步骤可以由生效选择模块203执行,生效终端为在至少一个第一终端中本次分发数据需要生效的第一终端;令生效终端的所述数据生效版本的指针为本次分发数据的分发数据版本,令除生效终端外的其它第一终端的数据生效版本的指针为对应的第一终端的生效数据版本,该步骤可以由生效确定模块204执行。例如,参见图6,在示例性数据变化600中,有两个第一终端,ip地址分别为127.0.0.1和127.0.0.2,选择127.0.0.1为本次分发数
据的生效终端,本次分发数据为y,对应的数据分发版本为m,则得到(第一终端127.0.0.1,数据生效版本m),第一终端127.0.0.2的生效数据版本为n,则得到(第一终端127.0.0.2,数据生效版本n)。通过本实施例,可以在数据分发时,选择数据生效的范围,不是每个第一终端获取到分发数据后就一定会生效,可以控制哪些第一终端的分发数据生效,令数据分发的可控性更强。
63.在一些实施例中,第一终端从外部缓存获取对应的数据生效版本可以为定时获取。例如,第一终端可以每隔5s从外部缓存获取一次对应的数据生效版本。第一终端可以通过扫描外部缓存的方式来获取对应的数据生效版本,扫描可以为定时扫描。
64.步骤320,判断所述数据生效版本的指针是否为所述分发数据版本,若是,则所述第一终端的生效数据版本的指针改写为所述分发数据版本。
65.具体的,该步骤320可以由数据生效模块202执行。
66.第一终端获取对应的数据生效版本后,对数据生效版本进行判断,若第一终端对应的数据生效版本的指针为该第一终端的生效数据版本,则表示在本次数据分发中,该第一终端的分发数据不需生效,该第一终端保持当前生效数据不变。若该第一终端对应的数据生效版本为分发数据版本,则表示在本次数据分发中,该第一终端的分发数据需要生效,该第一终端的当前生效数据会发生变化。变化具体为该第一终端的生效数据版本的指针改写为本次分发数据的分发数据版本,以使得本次分发数据在该第一终端上生效。
67.参见图6,在示例性数据变化600中,以前述选择127.0.0.1为本次分发数据的生效终端为例,本次分发数据为y,对应的数据分发版本为m,外部缓存中保存有(第一终端127.0.0.1,数据生效版本m),第一终端的生效数据版本为n,该第一终端对应的数据生效版本的指针为m,为分发数据版本,在本次数据分发中,该第一终端127.0.0.1的分发数据需要生效,将第一终端的生效数据版本的指针n改写为m,即令第一终端127.0.0.1获取到的分发数据y生效。
68.步骤330,所述第一终端将所述生效数据版本发送至所述外部缓存。
69.具体的,该步骤330可以由上报模块205执行。
70.第一终端可以将生效数据版本发送至外部缓存保存,即表示将第一终端的当前生效数据情况上报至外部缓存。在第一终端对应的数据生效版本判断完成,并根据比对结果更新或保持对应的生效数据版本后,第一终端的分发数据是否生效就被确定。此时,第一终端将生效数据版本上报至外部缓存,外部缓存就可以更新第一终端的数据生效情况。
71.在一些实施例中,外部缓存中可以用数据当前版本来记录第一终端发送的生效数据版本。第一终端将生效数据版本上报至外部缓存,就可以将第一终端的生效数据版本的指针写入外部缓存中对应的第一终端的数据当前版本。例如,参见图6,在示例性数据变化600中,第一终端127.0.0.1的生效数据版本n与对应的数据生效版本m比对完成,并根据比对结果得到新的生效数据版本m,第一终端127.0.0.1将生效数据版本m上报至外部缓存,得到外部缓存中第一终端的数据当前版本为m。通过本实施例,可以通过外部缓存中记录的第一终端的数据当前版本知道对应的第一终端的数据生效情况。
72.步骤340,获取所述外部缓存中所述第一终端发送的所述生效数据版本和对应的所述第一终端的所述数据生效版本;判断所述第一终端发送的所述生效数据版本和对应的所述第一终端的所述数据生效版本是否一致;若否,则所述第一终端重新执行所述分发数
据的方法。
73.具体的,该步骤340可以由生效数据获取模块206和生效判断模块207执行。
74.在一些实施例中,还可以获取外部缓存中第一终端发送的生效数据版本和对应的所述第一终端的数据生效版本进行比对,若一致,则表示对该第一终端数据分发成功,若不一致,则表示对该第一终端数据分发失败(例如第一终端获取的分发数据需要生效,但其生效未成功,导致第一终端的生效数据版本与外部缓存中对应的第一终端的数据生效版本不一致)。当不一致时,该分发数据失败,该第一终端可以重新执行分发数据的方法,即可以重新执行步骤310-步骤330。
75.通过本实施例,可以通过检查外部缓存中第一终端对应的数据当前版本,明确感知各个第一终端的数据分发结果。对于分发数据失败的第一终端可以重新分发数据,保证了分发数据的有效性,大大提高了数据分发的可靠性。
76.图4是根据本说明书的一些实施例所示的另一种分发数据的方法的示例性流程图。在一些实施例中,该分发数据的方法400可以由第一终端执行。
77.如图4所示,该方法400可以包括:
78.步骤410,所述第一终端判断所述外部缓存中是否存在所述第一终端对应的相关数据;所述第一终端对应的相关数据至少包括所述分发数据版本、所述分发数据和所述第一终端的所述数据生效版本;若否,则获取对应的所述第一终端对应的相关数据,并保存至所述外部缓存。
79.具体的,该步骤410可以由数据判断模块210以及相关数据获取模块211执行。
80.分发数据时,第一终端可以先判断外部缓存中是否保存有第一终端对应的相关数据。如果外部缓存中不存在对应的第一终端的相关数据,则可以认为该第一终端没有在外部缓存中注册过,该第一终端没有通过外部缓存进行过接收分发数据。则可以进行获取对应的第一终端对应的相关数据,并保存至外部缓存。
81.在一些实施例中,获取第一终端对应的相关数据可以通过调用第二终端查询并得到该第一终端对应的相关数据,将得到的该第一终端对应的相关数据本写入外部缓存。第一终端对应的相关数据至少包括分发数据、分发数据版本和第一终端的数据生效版本。外部缓存中保存有前述相关数据之后,该第一终端就可以通过外部缓存进行接收分发数据。
82.在一些实施例中,第一终端对应的相关数据还可以包括第一终端的生效数据版本、当前本地数据版本、数据当前版本。
83.步骤420,第一终端从外部缓存获取分发数据版本,并判断所述第一终端是否存在所述分发数据版本,若否,则所述第一终端从所述外部缓存获取所述分发数据版本对应的分发数据并保存,以及所述第一终端从所述外部缓存获取对应的数据生效版本。
84.具体的,该步骤420可以由第一数据获取模块201执行。
85.第一终端从外部缓存获取分发数据版本,并判断第一终端是否存在所述分发数据版本;若否,则第一终端从外部缓存获取分发数据版本对应的分发数据并保存,以及第一终端从外部缓存获取对应的数据生效版本的具体内容可以参见图3的步骤310及其相关描述,此处不再赘述。
86.步骤430,判断所述数据生效版本的指针是否为所述分发数据版本,若是,则所述第一终端的生效数据版本的指针改写为所述分发数据版本。
87.具体的,该步骤430可以由数据生效模块202执行。
88.判断所述数据生效版本的指针是否为所述分发数据版本,若是,则所述第一终端的生效数据版本的指针改写为所述分发数据版本的具体内容可以参见图3的步骤320及其相关描述,此处不再赘述。
89.步骤440,所述第一终端将所述生效数据版本发送至所述外部缓存。
90.具体的,该步骤440可以由上报模块205执行。
91.第一终端将生效数据版本发送至外部缓存的具体内容可以参见图3的步骤330及其相关描述,此处不再赘述。
92.步骤450,获取所述外部缓存中所述第一终端发送的所述生效数据版本和对应的所述第一终端的所述数据生效版本;判断所述第一终端发送的所述生效数据版本和对应的所述第一终端的所述数据生效版本是否一致;若否,则所述第一终端重新执行所述分发数据的方法。
93.具体的,该步骤450可以由生效数据获取模块206和生效判断模块207执行。
94.在一些实施例中,还可以获取外部缓存中第一终端发送的生效数据版本和对应的第一终端的所述数据生效版本;判断第一终端发送的生效数据版本和对应的第一终端的所述数据生效版本是否一致;若否,则第一终端重新执行分发数据的方法。该步骤的具体内容可以参见图3的步骤340及其相关描述,此处不再赘述。
95.图5是根据本说明书的一些实施例所示的验证分发数据的方法的示例性流程图。
96.如图5所示,该方法500可以包括:
97.步骤510,验证所述分发数据。
98.具体的,该步骤510可以由验证模块208执行。
99.如前所述,分发数据指被分发的各种数据,例如消息数据、配置数据、指令数据等。验证分发数据,可以验证分发数据的数据内容是否完整、分发数据的格式是否正确、分发数据中是否含有病毒等非法信息等,判别分发数据是否是一个正确且完整的数据,还可以验证分发数据是否在第一终端上正确作用,例如验证分发给第一终端的指令数据是否正确执行,验证分发给第一终端的配置数据是否配置成功。
100.验证分发数据的方法可以是:数据测试、单元测试、功能测试、压力测试、性能测试、负载均衡测试、接口测试、可接受性测试、用户测试、界面测试、回归测试等方法中的任意一种或多种。
101.步骤520,若验证未通过,则将完成分发数据后的所述第一终端的所述生效数据版本的指针改写为第一指针,所述第一指针为前一次分发数据完成后对应的所述第一终端的所述生效数据版本。
102.具体的,该步骤520可以由第二指针改写模块209执行。
103.当分发数据验证通过,则分发数据正确,该次分发数据成功,也就没有问题。当分发数据验证未通过,则认为该次分发数据无效。若该次分发数据无效,可以对第一终端的数据进行回滚。具体地,将完成分发数据后的第一终端的生效数据版本的指针改写为第一指针,第一指针为前一次分发数据完成后对应的第一终端的生效数据版本。
104.在一些实施例中,分发数据验证未通过时,还可以将完成分发数据后的第一二终端的当前本地数据版本的指针改写为第二指针,第二指针为前一次分发数据时的当前本地
数据版本。
105.可以理解,经过前述改写,第一终端的生效数据版本的指针和当前本地数据版本,与本次发布之前的状态一致,即,回滚到了前一次分发数据完成时的状态。通过本实施例,若分发数据在验证过程中出现问题,可以直接切换第一客户端的指针即可实现数据回滚。可以进一步减少耗时,从而提升数据分发的稳定性。
106.本说明书实施例还提供一种装置,包括处理器,所述处理器用于执行前述的分发数据的方法。所述分发数据的方法可以包括:第一终端从外部缓存获取分发数据版本,并判断所述第一终端是否存在所述分发数据版本;若否,则所述第一终端从所述外部缓存获取所述分发数据版本对应的分发数据并保存,以及所述第一终端从所述外部缓存获取对应的数据生效版本;判断所述数据生效版本的指针是否为所述分发数据版本,若是,则所述第一终端的生效数据版本的指针改写为所述分发数据版本。
107.本说明书实施例还提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行前述的分发数据的方法。所述分发数据的方法可以包括:第一终端从外部缓存获取分发数据版本,并判断所述第一终端是否存在所述分发数据版本;若否,则所述第一终端从所述外部缓存获取所述分发数据版本对应的分发数据并保存,以及所述第一终端从所述外部缓存获取对应的数据生效版本;判断所述数据生效版本的指针是否为所述分发数据版本,若是,则所述第一终端的生效数据版本的指针改写为所述分发数据版本。
108.本说明书实施例可能带来的有益效果包括但不限于:(1)采用第一终端、第二终端结合外部缓存进行分发数据,第一终端根据自身情况异步从缓存中获取分发数据,减低了第二终端分发数据时的资源消耗,大大提升了数据分发的效率;(2)对分发数据和生效数据采用双版本,分发数据和生效数据互不影响,实现了数据的快速分发以及数据的按范围生效;(3)通过指针实现快速切换数据,使整个数据分发、切换过程中更加可靠,且通过直接切换第一终端的指针即可实现数据回滚,进一步减少耗时,提升数据分发的稳定性;(4)第一终端可以将数据生效情况上报至外部缓存,可以实现明确感知各个第一终端的数据分发结果,保证了分发数据的有效性,提高了数据分发的可靠性。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
109.上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
110.同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
111.此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或
对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
112.计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质,或任何上述介质的组合。
113.本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c 、c#、vb.net、python等,常规程序化编程语言如c语言、visual basic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。
114.此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
115.同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
116.一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
117.针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、
书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
118.最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献