队列数据的处理系统、方法、存储介质及电子设备与流程

文档序号:29640439发布日期:2022-04-13 18:18阅读:72来源:国知局
队列数据的处理系统、方法、存储介质及电子设备与流程

1.本公开涉及计算机技术领域,尤其涉及一种队列数据的处理系统、方法、存储介质及电子设备。


背景技术:

2.随着信息化时代的到来,互联网的高速发展导致服务架构的不堪重负,海量数据的处理成为业内的隐痛。虽然随着异步技术的成熟使得高并发、海量数据的处理逐渐变得轻车熟路,但目前相对优秀的异步框架仍存在瑕疵,为了保障系统的安全性与稳定性,使用了有界限的容器充当任务队列,即队列中只能存放规定数量的数据,超过该规定数量则会发送阻塞。则在耗时较高的任务场景下,事件处理器未能及时对任务进行处理,在任务堆积量达到容器上限时,就会发送阻塞,从而导致系统不稳定。
3.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

4.本公开的目的在于提供一种队列数据的处理系统、方法、存储介质及电子设备,以解决数据堆积量达到队列上限时导致发送阻塞的问题。
5.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
6.根据本公开的一个方面,提供一种队列数据的处理系统,用于存储数据的主队列和二级队列;所述处理系统还包括:仓库管理模块,用于实时监听所述主队列的负载情况,以确定当前负载值,其中,所述当前负载值用于表征所述主队列当前的负载情况;发布器,用于发布待存储数据,以及根据所述当前负载值,从所述主队列和所述二级队列中确定所述待存储数据的目标队列,并将所述待存储数据写入所述目标队列。
7.在本公开的一个实施例中,所述仓库管理模块包括二级队列写入处理单元,用于响应于所述目标队列为二级队列,接收所述发布器发送的所述待存储数据,并将所述待存储数据发送至二级队列。
8.在本公开的一个实施例中,所述二级队列写入处理单元还用于,将所述待存储数据进行分片处理,得到至少一个子数据,并为所述至少一个子数据进行标记;以及根据所述标记的结果,将所述至少一个子数据写入二级队列。
9.在本公开的一个实施例中,所述仓库管理模块还包括主队列被动监听器和主队列写入处理单元,所述主队列被动监听器用于实时监听所述主队列的负载情况,所述主队列写入处理单元用于响应于所述主队列的负载情况低于预设阈值,将所述二级队列中存储的备存储数据发送至所述主队列。
10.在本公开的一个实施例中,所述仓库管理模块还用于,所述主队列写入处理单元还用于,根据目标标记在所述二级队列中查找所述备存储数据,通过多线程将所述备存储
数据进行擦除头数据处理,并将所述处理结果写入所述主队列。
11.在本公开的一个实施例中,所述处理系统还包括监听器和执行器,监听器用于轮询扫描所述主队列;所述执行器还用于根据所述监听器轮询扫描的结果,通知所述执行器向消费者发送数据。
12.在本公开的一个实施例中,所述主队列为随机存取存储器,和/或,所述二级队列为硬盘。
13.根据本公开的另一个方面,提供一种队列数据的处理方法,包括:实时监听主队列的负载情况,以确定当前负载值,其中,所述当前负载值用于表征所述主队列当前的负载情况,所述主队列和二级队列用于存储数据;发布待存储数据,以及根据所述当前负载值,从所述主队列和所述二级队列中确定所述待存储数据的目标队列,并将所述待存储数据写入所述目标队列。
14.在本公开的一个实施例中,所述处理方法还包括:响应于所述目标队列为二级队列,并将所述待存储数据发送至二级队列。
15.在本公开的一个实施例中,所述将所述待存储数据发送至二级队列,包括:将所述待存储数据进行分片处理,得到至少一个子数据,并为所述至少一个子数据进行标记;以及根据所述标记的结果,将所述至少一个子数据写入二级队列。
16.在本公开的一个实施例中,所述处理方法还包括:响应于所述主队列的负载情况低于预设阈值时,将所述二级队列中存储的备存储数据发送至所述主队列。
17.在本公开的一个实施例中,所述将所述二级队列中存储的备存储数据发送至所述主队列,包括:根据目标标记在所述二级队列中查找所述备存储数据,通过多线程将所述备存储数据进行擦除头数据处理,并将所述处理结果写入所述主队列。
18.在本公开的一个实施例中,所述处理方法还包括:轮询扫描所述主队列;根据所述轮询扫描的结果,通知所述执行器向消费者发送数据。
19.在本公开的一个实施例中,所述主队列为随机存取存储器,和/或,所述二级队列为硬盘。
20.根据本公开的又一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的队列数据的处理方法。
21.根据本公开的再一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的队列数据的处理方法。
22.本公开的实施例所提供的队列数据的处理系统,在仓库管理模块监听到主队列的负载达到上限时,通过更新设置的负载值,发布器将数据写入二级队列,可避免主队列溢出的情况,进而实现了无界队列的技术。
23.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
24.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开
的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
25.图1示出了可以应用本公开示例性实施例的队列数据的处理方法的示例性系统架构的示意图;
26.图2示出了本公开一个实施例的队列数据的处理系统的示意图;
27.图3示出了本公开一个实施例的队列数据的处理系统的示意图;
28.图4示出了本公开一个实施例的队列数据的处理方法的流程图;
29.图5示出了本公开一个实施例的将待存储数据发送至二级队列的数据处理的示意图;
30.图6示出了本公开一个实施例的将二级队列中的数据写入主队列的数据处理的示意图;
31.图7示出了本公开一个实施例的队列数据的处理方法的流程图;和
32.图8示出本公开实施例中一种队列数据的处理设备的结构框图。
具体实施方式
33.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
34.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
35.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
36.针对上述相关技术中存在的技术问题,本公开实施例提供了一种队列数据的处理方法,以用于至少解决上述技术问题中的一个或者全部。
37.图1示出了可以应用本公开示例性实施例的队列数据的处理方法的示例性系统架构的示意图。
38.如图1所示,该系统架构可以包括服务器101、网络102和客户端103。网络102可以在客户端103和服务器101之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
39.服务器101可以是提供各种服务的服务器,例如对用户利用客户端所进行操作的装置提供支持的后台管理服务器。后台管理服务器可以对接收到的请求等数据进行分析等处理,并将处理结果反馈给客户端。
40.客户端103可以是手机、游戏主机、平板电脑、电子书阅读器、智能眼镜、智能家居
设备、ar(augmented reality,增强现实)设备、vr(virtual reality,虚拟现实)设备等移动终端,或者,客户端103也可以是个人计算机,比如膝上型便携计算机和台式计算机等等。
41.本公开示例性实施例中,服务器可例如实时监听主队列的负载情况,以确定当前负载值;服务器可例如发布待存储数据,以及根据所述当前负载值,从所述主队列和所述二级队列中确定所述待存储数据的目标队列,并将所述待存储数据写入所述目标队列。
42.应该理解,图1中的客户端、网络和服务器的数目仅仅是示意性的,服务器101可以是一个实体的服务器,还可以为多个服务器组成的服务器集群,还可以是云端服务器,根据实际需要,可以具有任意数目的终端设备、网络和服务器。
43.图2示出了本公开一个实施例的队列数据的处理系统的示意图。如图2所示,队列数据的处理系统200包括:主队列201、二级队列202、仓库管理模块203和发布器203。
44.主队列201和二级队列202用于存储数据。仓库管理模块203用于,实时监听所述主队列的负载情况,以确定当前负载值,其中,所述当前负载值用于表征所述主队列当前的负载情况。发布器204用于,发布待存储数据,以及根据所述当前负载值,从所述主队列和所述二级队列中确定所述待存储数据的目标队列,并将所述待存储数据写入所述目标队列。
45.根据本发明实施例,在监听到主队列(primary queue)的负载达到上限时,通过设置负载值(valve值),将数据写入二级队列(secondary queue),可避免主队列溢出的情况,进而实现了无界队列的技术。
46.在本公开的一个实施例中,所述仓库管理模块包括二级队列写入处理单元,用于响应于所述目标队列为二级队列,接收所述发布器发送的所述待存储数据,并将所述待存储数据发送至二级队列。通过该实施例,在主队列负载较大时,可通过二级队列写入处理单元将数据写入二级队列,进而解决了主队列溢出的问题。
47.在本公开的一个实施例中,所述二级队列写入处理单元还用于,将所述待存储数据进行分片处理,得到至少一个子数据,并为所述至少一个子数据进行标记;以及根据所述标记的结果,将所述至少一个子数据写入二级队列。在将该待存储数据写入二级队列之前,可对数据进行分片、标记处理,以方便更快的从二级队列读写数据。
48.在本公开的一个实施例中,所述仓库管理模块还包括主队列被动监听器和主队列写入处理单元,所述主队列被动监听器用于实时监听所述主队列的负载情况,所述主队列写入处理单元用于响应于所述主队列的负载情况低于预设阈值,将所述二级队列中存储的备存储数据发送至所述主队列。仓库管理模块中内置一个primary queue被动监听器,当primary queue负载降低时,将secondary queue中的数据写入primary queue。
49.在本公开的一个实施例中,所述仓库管理模块还用于,所述主队列写入处理单元还用于,根据目标标记在所述二级队列中查找所述备存储数据,通过多线程将所述备存储数据进行擦除头数据处理,并将所述处理结果写入所述主队列。在将secondary queue中的数据写入primary queue之前,可通过标记找到secondary queue的数据,并使用多线程读取数据、将数据经过解码、拆分、头擦除处理后,将数据发往primary queue。其中,拆分即为多线程分批处理,数据在存入primary queue会加入头数据,数据在写入primary queue时,通过擦除头数据来验证数据的完整性,保证数据安全。
50.在本公开的一个实施例中,所述处理系统还包括监听器和执行器,监听器用于轮询扫描所述主队列;所述执行器还用于根据所述监听器轮询扫描的结果,通知所述执行器
向消费者发送数据。监听器轮询扫描primary queue,检测到主队列中有数据时通过通知单元通知执行器(consumer event executor group)将主队列中的数据发往消费者。
51.在本公开的一个实施例中,所述主队列为随机存取存储器,和/或,所述二级队列为硬盘。硬盘为基于hdd(hard disk drive,硬盘驱动器)的存储器,相对于随机存取存储器(random access memory,ram)更为廉价,且存储空间通常为ram的数百倍。
52.图3示出了本公开一个实施例的队列数据的处理系统的示意图;如图2所示,队列数据的处理系统包括:发布器310、监听器320、执行器330、仓库管理模块340、主队列350、二级队列360和引导加载程序370。其中,发布器310包括主队列索引单元311和管线单元312。监听器320包括异步轮询监听器321和通知单元322。仓库管理模块340包括主队列被动监听器241、主队列写入处理单元342和二级队列写入处理单元343。其中,引导加载程序370用于初始化主队列350、二级队列360,该初始化包括初始化线程池、预加载二级队列等操作。以及,主队列采用数组结构,数组结构具有索引查询元素速度快的优点,但存在增加、删除元素效率慢的缺点。因此,为了在数据变动时规避掉数组增加、删除元素效率慢的特点,可事先将数组做填充,在数组中存入数据载体的引用,在更新数据时直接更新引用所指向的数据内容,而数组中存放的引用则不作变动。
53.具体的,队列数据的处理系统中可包括多个主队列,当发布器310接收到待存储数据之后,可通过主队列索引单元311从该多个主队列中确定出所述待存储数据的主队列(不同的数据可能需要发送至不同的主队列)。在主队列索引单元(primary queue index)311确定出所述待存储数据的主队列之后,调用管线单元(pipeline)312决策所述待存储数据将去往主队列(primary queue)350或仓库管理模块(warehouse manager)340。调用管线单元(pipeline)312在决策过程中,通过确定该主队列的负载值(valve值)从主队列和二级队列中确定出所述待存储数据的目标队列。示例性的,当主队列满载时valve值为0,此时数据将会发布至仓库管理模块,以通过仓库管理模块将数据写入二级队列;当主队列负荷降低后,valve值变为1,此时可将数据将进入主队列350。因此,管线单元312确定valve值为1时,确定所述待存储数据的主队列为其目标队列。管线单元312确定valve值为0时,确定所述待存储数据的二级队列360为其目标队列,此时,将所述待存储数据发送至仓库管理模块340的二级队列写入处理单元343。
54.其中,二级队列写入处理单元343在接收到管线单元312发送的待存储数据之后,为方便更快的从二级队列360中读写数据,对数据进行编码、分片、标记处理,然后通过多线程将处理后的数据写入二级队列360。
55.监听器320中的异步轮询监听器321可轮询扫描所述主队列350,在检测到所述主队列350中具有数据时,通过通知单元322通知执行器330执行器向消费者发送数据。以及,监听器320中的异步轮询监听器321检测到primary queue处于空闲状态时,异步轮询监听器321可主动触发仓库管理模块340中的主队列被动监听器241,该主队列被动监听器241确定主队列350的负载情况低于预设阈值,则触发主队列写入处理单元342将二级队列360中的数据写入主队列350。其中,该空闲状态是指主队列不是满载情况,此时确定空闲状态后,还可通知管线单元312更新valve值,例如可将valve值由0变更为1。
56.其中,主队列写入处理单元342在将二级队列360中的数据写入主队列350的过程中,由于数据在写入二级队列360中时已进行标记处理,则根据写入二级队列360中的顺序
以及先入先出的规则确定目标标记,通过该目标标记找到二级队列360中的数据,并使用多线程读取数据、将数据经过解码、拆分、头擦除处理后,将数据发往主队列350。
57.根据本实施例,通过二级队列以及监听器对主队列的实时监听,实现了ram和hdd主备模式的异步数据处理。以及,由于二级队列的容量非常大,就算主队列负载达到上限,二级队列也可存储非常大数据量的数据,因此避免了发送数据堵塞,使得容器无负载上限,进而保证了系统稳定性。并且二级队列在写入数据时对数据进行分片标记处理,并且采用二维数组的数据结构,便于数据的快速读取,所以在保证系统稳定性的前提下同时保证了效率,解决了现有技术中队列数据达到容器界限时产生阻塞的问题。
58.下面,将结合附图及实施例对本公开示例实施例中的队列数据的处理方法的各个步骤进行更详细的说明。
59.图4示出了本公开一个实施例的队列数据的处理方法的流程图。本公开实施例提供的方法可以由如图1所示的服务器或客户端中执行,但本公开并不限定于此。
60.在下面的举例说明中,以服务器集群101为执行主体进行示例说明。
61.如图4所示,本公开实施例提供的队列数据的处理方法可以包括以下步骤。
62.步骤s410,实时监听主队列的负载情况,以确定当前负载值,其中,所述当前负载值用于表征所述主队列当前的负载情况,所述主队列和二级队列用于存储数据;
63.步骤s420,发布待存储数据,以及根据所述当前负载值,从所述主队列和所述二级队列中确定所述待存储数据的目标队列,并将所述待存储数据写入所述目标队列。
64.在本公开的一个实施例中,所述处理方法还包括:响应于所述目标队列为二级队列,并将所述待存储数据发送至二级队列。
65.图5示出了本公开一个实施例的将待存储数据发送至二级队列的数据处理的示意图,如图5所示,将所述待存储数据发送至二级队列的步骤,包括:
66.步骤s510,将所述待存储数据进行分片处理,得到至少一个子数据;
67.步骤s520,为所述至少一个子数据进行标记;
68.步骤s530,根据所述标记的结果,将所述至少一个子数据写入二级队列。
69.根据本实施例,可便于数据从二级队列中快速读取。
70.在本公开的一个实施例中,所述处理方法还包括:响应于所述主队列的负载情况低于预设阈值时,将所述二级队列中存储的备存储数据发送至所述主队列。
71.图6示出了本公开一个实施例的将二级队列中的数据写入主队列的数据处理的示意图。如图6所示,将二级队列中的数据写入主队列的步骤,包括:
72.步骤s610,根据监听确定所述主队列的负载情况低于预设阈值;
73.步骤s620,根据目标标记在所述二级队列中查找所述备存储数据;
74.步骤s630,通过多线程将所述备存储数据进行擦除头数据处理;
75.步骤s640,将所述处理结果写入所述主队列。
76.在本公开的一个实施例中,所述处理方法还包括:轮询扫描所述主队列;根据所述轮询扫描的结果,通知所述执行器向消费者发送数据。
77.在本公开的一个实施例中,所述主队列为随机存取存储器,和/或,所述二级队列为硬盘。
78.图7示出了本公开一个实施例的队列数据的处理方法的流程图。如图7所示,本公
开一个实施例的队列数据的处理方法,包括:
79.步骤s710,主队列索引单元接收到待存储数据之后,确定该待存储数据的主队列,并将该待存储数据发送至管线单元。
80.步骤s720,管线单元根据主队列的负载值,决策所述待存储数据的目标队列为主队列或者二级队列;在目标队列为主队列时,执行步骤s750;在目标队列为二级队列时,执行步骤s730。
81.步骤s730,响应于所述目标队列为二级队列,仓库管理模块的二级队列写入处理单元将所述待存储数据进行编码、分片、标记处理,并通过多线程将数据写入二级队列;可选的,在该过程中,可通过原子变量(compare and swap)方式保证线程安全,以及二级队列的数据结构为二维数组结构,具体采用2-d array结合hex file存储。其中,二维数组可根据指标直接定位到数据位置,对数据存储没有顺序要求,并且查询数据更快,因此可以更好的将数据映射到二级队列,提高与主队列之间的数据转换效率。以及,通过原子变量的操作,在写入数据时进行加锁,以保证数据完整。进而保证了线程安全。
82.步骤s740,仓库管理模块的主队列被动监听器确定所述主队列的负载情况小于预设阈值,主队列写入单元通过标记找到主队列的对应数据,使用多线程读取所述对应数据、将所述对应数据经过解码、拆分、头擦除处理后,将所述对应数据发往主队列。
83.步骤s750,响应于所述目标队列为主队列,将所述待存储数据写入主队列。可选的,监听器轮询扫描主队列,检测到主队列中的数据时通过执行器(consumer event executor group)将数据发往消费者。以及,当检测到主队列处于空闲状态时,会直接主动触发primary queue监听器装载二级队列中的数据。实现了,主队列负载达到上限时将数据发往二级队列,主队列负载降低时从二级队列载入数据。因此,只要消费者(消费程序)正常执行,该系统就可源源不断的处理数据,避免了主队列达到上限、程序阻塞的问题。
84.根据本实施例,由于二级队列的容量非常大,就算主队列负载达到上限,二级队列也可存储非常大数据量的数据,因此避免了发送数据堵塞,使得容器无负载上限,进而保证了系统稳定性。并且二级队列在写入数据时对数据进行分片标记处理,并且采用二维数组的数据结构,便于数据的快速读取,所以在保证系统稳定性的前提下同时保证了效率,解决了现有技术中队列数据达到容器界限时产生阻塞的问题。
85.图8示出本公开实施例中一种队列数据的处理设备的结构框图。需要说明的是,图示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
86.下面参照图8来描述根据本发明的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
87.如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830。
88.其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图2中所示的步骤s410,实时监听主队列的负载情况,以确定当前负载值,其中,所述当前负载值用于表征所述主队列当前的负载情况,所述主队列和二级队列用于存储数据;步骤s420,发布待存储数据,以及根据
所述当前负载值,从所述主队列和所述二级队列中确定所述待存储数据的目标队列,并将所述待存储数据写入所述目标队列。
89.存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(rom)8203。
90.存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
91.总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
92.电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备1000交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
93.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
94.在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
95.根据本发明实施方式的用于实现上述方法的程序产品,其可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
96.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器
(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
97.计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
98.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
99.可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
100.应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
101.此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
102.通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本公开实施方式的方法。
103.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1